diff --git a/sql/v01/10.create.sql b/sql/v01/10.create.sql
index e27ad8d..ec24d94 100644
--- a/sql/v01/10.create.sql
+++ b/sql/v01/10.create.sql
@@ -95,7 +95,7 @@ CREATE TABLE AT_plz (
     ort         TEXT    NOT NULL,
     blnr        INTEGER NOT NULL,
     type        TEXT    NOT NULL,
-    internal    INTEGER NOT NULL CHECK (internal      IN (TRUE, FALSE)),
+    internal    INTEGER NOT NULL CHECK (internal    IN (TRUE, FALSE)),
     addressable INTEGER NOT NULL CHECK (addressable IN (TRUE, FALSE)),
     po_box      INTEGER NOT NULL CHECK (po_box      IN (TRUE, FALSE)),
 
@@ -283,10 +283,10 @@ CREATE TABLE member (
 
     lfbis_nr         TEXT             CHECK (lfbis_nr REGEXP '^[0-9]{7}$')            DEFAULT NULL,
     ustid            TEXT             CHECK (ustid REGEXP '^[A-Z]{2}[A-Z0-9]{2,12}$') DEFAULT NULL,
-    volllieferant    INTEGER NOT NULL CHECK (volllieferant IN (FALSE, TRUE))          DEFAULT FALSE,
-    buchführend      INTEGER NOT NULL CHECK (buchführend   IN (FALSE, TRUE))          DEFAULT FALSE,
-    funktionär       INTEGER NOT NULL CHECK (funktionär    IN (FALSE, TRUE))          DEFAULT FALSE,
-    active           INTEGER NOT NULL CHECK (active        IN (FALSE, TRUE))          DEFAULT TRUE,
+    volllieferant    INTEGER NOT NULL CHECK (volllieferant IN (TRUE, FALSE))          DEFAULT FALSE,
+    buchführend      INTEGER NOT NULL CHECK (buchführend   IN (TRUE, FALSE))          DEFAULT FALSE,
+    funktionär       INTEGER NOT NULL CHECK (funktionär    IN (TRUE, FALSE))          DEFAULT FALSE,
+    active           INTEGER NOT NULL CHECK (active        IN (TRUE, FALSE))          DEFAULT TRUE,
 
     iban             TEXT CHECK (iban REGEXP '^[A-Z]{2}[0-9]{2}[A-Z0-9]{8,30}$')               DEFAULT NULL,
     bic              TEXT CHECK (bic  REGEXP '^[A-Z0-9]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$') DEFAULT NULL,
@@ -321,8 +321,8 @@ CREATE TABLE member (
 
 CREATE TABLE member_billing_address (
     mgnr        INTEGER NOT NULL,
-    name        TEXT    NOT NULL,
 
+    name        TEXT    NOT NULL,
     country     TEXT    NOT NULL,
     postal_dest TEXT    NOT NULL,
     address     TEXT    NOT NULL,
@@ -340,8 +340,9 @@ CREATE TABLE contract (
     vnr       INTEGER NOT NULL,
     mgnr      INTEGER NOT NULL,
 
-    year_from INTEGER NOT NULL CHECK (year_from >= 1000 AND year_from <= 9999),
-    year_to   INTEGER          CHECK (year_to   >= 1000 AND year_to   <= 9999) DEFAULT NULL,
+    date      TEXT    CHECK (date REGEXP '^[1-9][0-9]{3}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$') DEFAULT CURRENT_DATE,
+    year_from INTEGER CHECK (year_from >= 1000 AND year_from <= 9999) DEFAULT NULL,
+    year_to   INTEGER CHECK (year_to   >= 1000 AND year_to   <= 9999) DEFAULT NULL,
     comment   TEXT DEFAULT NULL,
 
     CONSTRAINT pk_contract PRIMARY KEY (vnr),
@@ -354,6 +355,7 @@ CREATE TABLE area_commitment (
     vnr    INTEGER NOT NULL,
     sortid TEXT    NOT NULL,
     cultid TEXT    NOT NULL,
+
     area   INTEGER NOT NULL,
 
     CONSTRAINT pk_area_commitment PRIMARY KEY (vnr),
diff --git a/wgmaster/migrate.py b/wgmaster/migrate.py
index 54c4e60..956d4db 100755
--- a/wgmaster/migrate.py
+++ b/wgmaster/migrate.py
@@ -654,7 +654,7 @@ def migrate_contracts(in_dir: str, out_dir: str) -> None:
             open(f'{out_dir}/area_commitment.csv', 'w+') as f_fb, \
             open(f'{out_dir}/area_commitment_parcel.csv', 'w+') as f_parc, \
             open(f'{out_dir}/area_commitment_attribute.csv', 'w+') as f_attr:
-        f_c.write('vnr;mgnr;year_from;year_to;comment\n')
+        f_c.write('vnr;mgnr;date;year_from;year_to;comment\n')
         f_fb.write('vnr;sortid;cultid;area\n')
         f_parc.write('vnr;kgnr;gstnr;rdnr;area\n')
         f_attr.write('vnr;attrid\n')
@@ -682,7 +682,7 @@ def migrate_contracts(in_dir: str, out_dir: str) -> None:
                 comment = f'KG {kgnr}: {parz}'
 
             to = fb['Bis'] if fb['Bis'] and fb['Bis'] < 3000 else None
-            f_c.write(csv.format_row(vnr, mgnr, fb['Von'], to, comment))
+            f_c.write(csv.format_row(vnr, mgnr, None, fb['Von'], to, comment))
 
             f_fb.write(csv.format_row(vnr, fb['SNR'], CULTIVATION_MAP[fb['BANR']], area))
             if fb['SANR']: