with sqlite3.connect(':memory:') as db:
    db.executescript(data['ddl'])
    tables = {name: [row[1] for row in db.execute(f'PRAGMA table_info({name})')] for (name,) in db.execute("SELECT name FROM sqlite_master WHERE type='table'")}
    described = {row['name']: row for row in output['tables']}
    check('模型表名与实际SQLite建表结果一致', set(tables) == set(described))
    check('每张表的列名无遗漏或新增', all(set(columns) == {item if isinstance(item, str) else item['name'] for item in described[name]['columns']} for name, columns in tables.items()))
    fk = db.execute('PRAGMA foreign_key_list(orders)').fetchall()
    check('真实外键指向customers.id', any(row[2:5] == ('customers', 'customer_id', 'id') for row in fk))
(folder / 'schema.sql').write_text(data['ddl'])
