agronholm / sqlacodegen

Automatic model code generator for SQLAlchemy
Other
1.85k stars 241 forks source link

Constraints Issues with Oracle #291

Open cameronclaero opened 11 months ago

cameronclaero commented 11 months ago

Things to check first

Sqlacodegen version

master

SQLAlchemy version

2 latest

RDBMS vendor

Oracle

What happened?

on writing out contraints, issues occured with capitals, and also spaces in regards to the column name when writing out.

image

Database schema for reproducing the bug

CREATE TABLE "QCTL"."COMPANIES" ( "CMP_AUTO_KEY" NUMBER NOT NULL ENABLE, "CUR_AUTO_KEY" NUMBER, "SVC_AUTO_KEY" NUMBER, "TMC_AUTO_KEY" NUMBER, "TXT_AUTO_KEY" NUMBER, "CLC_AUTO_KEY" NUMBER, "FPC_AUTO_KEY" NUMBER, "COMPANY_CODE" VARCHAR2(10 BYTE) NOT NULL ENABLE, "SITE_CODE" VARCHAR2(10 BYTE), "ATTENTION" VARCHAR2(35 BYTE), "ADDRESS1" VARCHAR2(35 BYTE), "ADDRESS2" VARCHAR2(35 BYTE), "ADDRESS3" VARCHAR2(35 BYTE), "ALT_PHONE_NUMBER" VARCHAR2(20 BYTE), "CITY" VARCHAR2(35 BYTE), "COMPANY_ABBREV" VARCHAR2(12 BYTE) NOT NULL ENABLE, "COMPANY_NAME" VARCHAR2(50 BYTE) NOT NULL ENABLE, "CONTACT_NAME" VARCHAR2(50 BYTE), "COUNTRY" VARCHAR2(35 BYTE), "CURRENT_BALANCE" NUMBER, "COMPANY_BRIDGE_DATE" DATE, "CUSTOMER_FLAG" CHAR(1 BYTE), "DEPARTMENT" VARCHAR2(35 BYTE), "DISCOUNT" NUMBER, "FAX_NUMBER" VARCHAR2(20 BYTE), "FAX_BROADCAST_FLAG" CHAR(1 BYTE), "INVC_DOC_STYLE" VARCHAR2(15 BYTE), "LAST_SALE_DATE" DATE, "MAIL_MERGE_FLAG" CHAR(1 BYTE), "MAX_CREDIT" NUMBER, "MISCELLANEOUS" VARCHAR2(20 BYTE), "NOTES" CLOB DEFAULT empty_clob(), "PHONE_NUMBER" VARCHAR2(20 BYTE), "PHONE_STRIPPED" VARCHAR2(20 BYTE), "PO_DOC_STYLE" VARCHAR2(15 BYTE), "RESALE_NUMBER" VARCHAR2(20 BYTE), "SHIP_COUNTRY" VARCHAR2(35 BYTE), "SHIP_CITY" VARCHAR2(35 BYTE), "SHIP_STATE" VARCHAR2(3 BYTE), "SHIP_ADDRESS1" VARCHAR2(35 BYTE), "SHIP_ADDRESS2" VARCHAR2(35 BYTE), "SHIP_ADDRESS3" VARCHAR2(35 BYTE), "SHIP_ZIP_CODE" VARCHAR2(10 BYTE), "STATE" VARCHAR2(3 BYTE), "SUPPLIER_ID" VARCHAR2(8 BYTE), "VENDOR_FLAG" CHAR(1 BYTE), "VENDOR_BRIDGE_DATE" DATE, "YTD_SALES" NUMBER, "ZIP_CODE" VARCHAR2(10 BYTE), "CV_UDF_001" CHAR(1 BYTE), "CV_UDF_002" CHAR(1 BYTE), "CV_UDF_003" CHAR(1 BYTE), "CV_UDF_004" CHAR(1 BYTE), "CV_UDF_005" CHAR(1 BYTE), "CV_UDF_006" CHAR(1 BYTE), "CV_UDF_007" CHAR(1 BYTE), "CV_UDF_008" CHAR(1 BYTE), "CV_UDF_009" CHAR(1 BYTE), "CV_UDF_010" CHAR(1 BYTE), "CV_UDF_011" VARCHAR2(40 BYTE), "CV_UDF_012" VARCHAR2(40 BYTE), "CV_UDF_013" VARCHAR2(40 BYTE), "CV_UDF_014" VARCHAR2(40 BYTE), "CV_UDF_015" VARCHAR2(40 BYTE), "COMPANY_NAME_UPPER" VARCHAR2(50 BYTE), "COMPANY_CODE_UPPER" VARCHAR2(10 BYTE), "SITE_CODE_UPPER" VARCHAR2(10 BYTE), "TAX_ID" VARCHAR2(35 BYTE), "VAT_NUMBER" VARCHAR2(25 BYTE), "SEND_1099" CHAR(1 BYTE), "GLA_AR" NUMBER, "GLA_AP" NUMBER, "EMAIL_ADDRESS" VARCHAR2(255 BYTE), "IQ_ENABLE_QTY" CHAR(1 BYTE), "IQ_ENABLE_PRICE" CHAR(1 BYTE), "IQ_ENABLE_CONDITION" CHAR(1 BYTE), "IQ_ENABLE_STOCK" CHAR(1 BYTE), "IQ_ENABLE_TIMELIFE" CHAR(1 BYTE), "IQ_ENABLE_RFQ" CHAR(1 BYTE), "IQ_ENABLE_PO" CHAR(1 BYTE), "SYSUR_IQ_NOTIFY_RFQ" NUMBER, "SYSUR_IQ_NOTIFY_PO" NUMBER, "ALLOW_ANY" VARCHAR2(10 BYTE), "ALLOW_CQ" VARCHAR2(10 BYTE), "ALLOW_VQ" VARCHAR2(10 BYTE), "ALLOW_PO" VARCHAR2(10 BYTE), "ALLOW_SO" VARCHAR2(10 BYTE), "ALLOW_IN" VARCHAR2(10 BYTE), "ALLOW_RO" VARCHAR2(10 BYTE), "IQ_LOC" NUMBER, "IQ_USER" VARCHAR2(30 BYTE), "IQ_PASS" VARCHAR2(30 BYTE), "IQ_RESPONSE_EMAIL" VARCHAR2(60 BYTE), "IQ_HOSTNAME_OVERRIDE" VARCHAR2(100 BYTE), "IQ_SEQ" NUMBER DEFAULT 1, "IQ_CURRENCY" VARCHAR2(50 BYTE), "AGN_AUTO_KEY" NUMBER, "SPN_AUTO_KEY" NUMBER, "FAX_STRIPPED" VARCHAR2(20 BYTE), "DEFERRED_REC" CHAR(1 BYTE) DEFAULT 'F', "SPEC_2000" CHAR(1 BYTE) DEFAULT 'F', "CAP_RESTRICT_LEVEL" VARCHAR2(8 BYTE) DEFAULT 'NONE', "AP_TOTAL" NUMBER(19,4) DEFAULT 0, "IQ_VIEW_RFQ" CHAR(1 BYTE), "IQ_VIEW_PO" CHAR(1 BYTE), "IQ_QUOTE_TO_PO" CHAR(1 BYTE), "CONVERTED" CHAR(1 BYTE) DEFAULT 'F', "ILS_CODE" VARCHAR2(4 BYTE), "CV_UDF_016" VARCHAR2(40 BYTE), "CV_UDF_017" VARCHAR2(40 BYTE), "CV_UDF_018" VARCHAR2(40 BYTE), "CV_UDF_019" VARCHAR2(40 BYTE), "CV_UDF_020" VARCHAR2(255 BYTE), "CV_UDF_021" VARCHAR2(50 BYTE), "CV_UDF_022" VARCHAR2(50 BYTE), "CV_UDF_023" VARCHAR2(50 BYTE), "CV_UDF_024" VARCHAR2(50 BYTE), "CV_UDF_025" VARCHAR2(50 BYTE), "CQ_WARNING" CLOB DEFAULT empty_clob(), "SO_WARNING" CLOB DEFAULT empty_clob(), "IN_WARNING" CLOB DEFAULT empty_clob(), "VQ_WARNING" CLOB DEFAULT empty_clob(), "PO_WARNING" CLOB DEFAULT empty_clob(), "RO_WARNING" CLOB DEFAULT empty_clob(), "WO_WARNING" CLOB DEFAULT empty_clob(), "ALLOW_WO" VARCHAR2(10 BYTE), "QUANTUM_ID" NUMBER, "ALLOW_CM" VARCHAR2(10 BYTE), "CM_WARNING" CLOB DEFAULT empty_clob(), "TMC_VEND_OVERRIDE" NUMBER, "EB_USERID" VARCHAR2(40 BYTE), "DBA" CHAR(1 BYTE) DEFAULT 'F', "CMP_PARENT" NUMBER, "MKT_COMPANY_CODE" VARCHAR2(10 BYTE), "MKC_AUTO_KEY" NUMBER, "CV_UDF_053" DATE, "DEFERRED_RO_REC" CHAR(1 BYTE), "USE_MKT" CHAR(1 BYTE) DEFAULT 'F', "RESTRICTED" CHAR(1 BYTE) DEFAULT 'F', "SYSUR_AUTO_KEY" NUMBER, "DATE_CREATED" DATE, "PRIORITY_VENDOR" CHAR(1 BYTE) DEFAULT 'F', "CREDIT_LIMIT" NUMBER(19,4) DEFAULT 0, "QB_CUST_LISTID" VARCHAR2(40 BYTE), "QB_VEND_LISTID" VARCHAR2(40 BYTE), "SDF_CMP_001" VARCHAR2(40 BYTE), "SDF_CMP_002" VARCHAR2(40 BYTE), "SDF_CMP_003" VARCHAR2(40 BYTE), "SDF_CMP_004" VARCHAR2(40 BYTE), "SDF_CMP_005" VARCHAR2(40 BYTE), "SDF_CMP_006" VARCHAR2(40 BYTE), "SDF_CMP_007" VARCHAR2(40 BYTE), "SDF_CMP_008" VARCHAR2(40 BYTE), "SDF_CMP_009" VARCHAR2(40 BYTE), "SDF_CMP_010" VARCHAR2(40 BYTE), "ELC_REQUIRED" CHAR(1 BYTE) DEFAULT 'F', "LABOR_DISCOUNT" NUMBER(19,4), "CV_UDF_054" DATE, "CNC_AUTO_KEY" NUMBER, "ALLOW_WC" VARCHAR2(10 BYTE), "WC_WARNING" CLOB DEFAULT empty_clob(), "ALLOW_WQ" VARCHAR2(10 BYTE), "WQ_WARNING" CLOB DEFAULT empty_clob(), "ALLOW_WQ_BILL" VARCHAR2(10 BYTE), "WQ_BILL_WARNING" CLOB DEFAULT empty_clob(), "CORE_DUE_DAYS" NUMBER, "DEPT_COMPANY" CHAR(1 BYTE) DEFAULT 'F', "REQ_VERIFICATION" CHAR(1 BYTE) DEFAULT 'F', "TRACK_CHANGES" CHAR(1 BYTE) DEFAULT 'F', "GLD_AR" NUMBER, "GLD_AP" NUMBER, "COC_AUTO_KEY" NUMBER, "SHIP_NAME" VARCHAR2(50 BYTE), "DTC_AUTO_KEY" NUMBER, "LAST_MODIFIED" DATE, "SYSUR_MODIFIED" NUMBER, "GLD_AP_PREPAY" NUMBER, "GLD_AR_PREPAY" NUMBER, "EDI_NUMBER" VARCHAR2(30 BYTE), "EDI_SEQUENCE" NUMBER, "LANG_CODE" VARCHAR2(2 BYTE) DEFAULT 'GB', "ENQUEUE_MSG" CHAR(1 BYTE), "ROUTING_NUMBER" VARCHAR2(15 BYTE), "ACCOUNT_NUMBER" VARCHAR2(35 BYTE), "ACH_VENDOR" VARCHAR2(1 BYTE) DEFAULT 'F', "GLD_AP_EXPENSE" NUMBER, "WEB_SITE" VARCHAR2(100 BYTE), "INVOICE_EMAIL" VARCHAR2(60 BYTE), "GLD_AP_SUSPENSE" NUMBER, "INTERNAL_FLAG" VARCHAR2(1 BYTE) DEFAULT 'F', "COC_OFFICE" NUMBER, "APPROVAL_EXPIRE" DATE, "APR_AUTO_KEY" NUMBER, "CONVERSION_ID" NUMBER, "DHL_DELIVERY_DUTY_PAYOR" VARCHAR2(15 BYTE) DEFAULT 'DDU', "ALLOW_WP" VARCHAR2(10 BYTE), "WP_WARNING" CLOB DEFAULT empty_clob(), "VQ_APPROVED" VARCHAR2(1 BYTE) DEFAULT 'F', "CFF_AUTO_KEY" NUMBER, "BANK_NAME" VARCHAR2(70 BYTE), "BANK_ADDRESS1" VARCHAR2(35 BYTE), "BANK_ADDRESS2" VARCHAR2(35 BYTE), "BANK_ADDRESS3" VARCHAR2(35 BYTE), "BANK_COUNTRY_CODE" VARCHAR2(3 BYTE), "INTERMEDIATE_BANK_NAME" VARCHAR2(35 BYTE), "INTERMEDIATE_BANK_ADDRESS1" VARCHAR2(35 BYTE), "INTERMEDIATE_BANK_ADDRESS2" VARCHAR2(35 BYTE), "INTERMEDIATE_BANK_ADDDRES3" VARCHAR2(35 BYTE), "INTERMEDIATE_BANK_COUNTRY" VARCHAR2(3 BYTE), "INTERMEDIATE_BANK_SWIFT" VARCHAR2(11 BYTE), "INTERMEDIATE_CLEARING_CODE" VARCHAR2(30 BYTE), "INTERMEDIATE_CLEARING_TYPE" VARCHAR2(35 BYTE), "SWIFT_CODE" VARCHAR2(11 BYTE), "ALLOW_MO" VARCHAR2(10 BYTE), "MO_WARNING" CLOB DEFAULT empty_clob(), "ALLOW_PR" VARCHAR2(10 BYTE), "PR_WARNING" CLOB DEFAULT empty_clob(), "ALLOW_LC" VARCHAR2(10 BYTE), "LC_WARNING" CLOB DEFAULT empty_clob(), "ALLOW_AP" VARCHAR2(10 BYTE), "AP_WARNING" CLOB DEFAULT empty_clob(), "ALLOW_CR" VARCHAR2(10 BYTE), "CR_WARNING" CLOB DEFAULT empty_clob(), "ALLOW_RR" VARCHAR2(10 BYTE), "RR_WARNING" CLOB DEFAULT empty_clob(), "ALLOW_CKM" VARCHAR2(10 BYTE), "CKM_WARNING" CLOB DEFAULT empty_clob(), "ALLOW_SMB" VARCHAR2(10 BYTE), "SMB_WARNING" CLOB DEFAULT empty_clob(), "ALLOW_SM" VARCHAR2(10 BYTE), "SM_WARNING" CLOB DEFAULT empty_clob(), "ALLOW_RI" VARCHAR2(10 BYTE), "RI_WARNING" CLOB DEFAULT empty_clob(), "SDF_CMP_011" VARCHAR2(40 BYTE), "SDF_CMP_012" VARCHAR2(40 BYTE), "SDF_CMP_013" VARCHAR2(40 BYTE), "SDF_CMP_014" VARCHAR2(40 BYTE), "SDF_CMP_015" VARCHAR2(40 BYTE), "SDF_CMP_016" VARCHAR2(40 BYTE), "SDF_CMP_017" VARCHAR2(40 BYTE), "SDF_CMP_018" VARCHAR2(40 BYTE), "SDF_CMP_019" VARCHAR2(40 BYTE), "SDF_CMP_020" VARCHAR2(40 BYTE), "RECO" VARCHAR2(1 BYTE) DEFAULT 'F', "EDD_ID" VARCHAR2(50 BYTE), "SMA_WARNING" CLOB DEFAULT empty_clob(), "BOX_1099" NUMBER DEFAULT 7, "REQ_CONTRACT" VARCHAR2(1 BYTE) DEFAULT 'F', "BANK_CHARGES_INDICATOR" NUMBER DEFAULT 0, "PO_COST_METHOD" CHAR(1 BYTE) DEFAULT '0', "BUC_CODE" VARCHAR2(20 BYTE), "WO_NOTES" CLOB DEFAULT empty_clob(), "MSG_VENDOR" CHAR(1 BYTE) DEFAULT 'F', "AMAZON_BUCKET" VARCHAR2(256 BYTE), "QQM_SENDER_ID" VARCHAR2(10 BYTE), "MFG_AUTO_KEY" NUMBER, "INTEGRATED_MANUALS" VARCHAR2(1 BYTE), "SDF_CMP_021" VARCHAR2(40 BYTE), "TRACKER_VISIBLE_PORTAL" VARCHAR2(1 BYTE), "BOA_WARNING" CLOB DEFAULT empty_clob(), "PBH_FLAG" VARCHAR2(1 BYTE), "ALLOW_SMS" VARCHAR2(10 BYTE) DEFAULT 'Yes', "SMS_WARNING" CLOB DEFAULT empty_clob(), "PMA_RESTRICTED" VARCHAR2(1 BYTE) DEFAULT 'F', "IBAN_ACCOUNT_NUMBER" VARCHAR2(35 BYTE), "DER_RESTRICTED" VARCHAR2(1 BYTE) DEFAULT 'F', "HISTORICAL" VARCHAR2(1 BYTE) DEFAULT 'F', "ALLOW_CERT" VARCHAR2(10 BYTE), "CERT_WARNING" CLOB DEFAULT empty_clob(), "STOCK_SAFETY_PRIORITY_LEVEL" NUMBER, "FOB" VARCHAR2(30 BYTE), "SYSCM_AUTO_KEY" NUMBER, "AEX_REGISTRATION_ID" VARCHAR2(10 BYTE), "QQM_IMS_AUTO_KEY" NUMBER, "ALLOW_RC" VARCHAR2(10 BYTE), "RC_WARNING" CLOB DEFAULT empty_clob(), "CMG_AUTO_KEY" NUMBER, "EDI_AUTO_DELIVER" VARCHAR2(1 BYTE), CONSTRAINT "VALID_RULE_21641" CHECK ( SPEC_2000 in ('F','T') ) ENABLE, CONSTRAINT "VALID_RULE_179" CHECK ( CAP_RESTRICT_LEVEL IN ('NONE', 'WARN', 'RESTRICT') ) ENABLE, CONSTRAINT "VALID_RULE_21640" CHECK ( DEFERRED_REC in ('F','T') ) ENABLE, CONSTRAINT "FK_SYSR_CMP" FOREIGN KEY ("SYSUR_AUTO_KEY") REFERENCES "QCTL"."SYS_USERS" ("SYSUR_AUTO_KEY") ENABLE, CONSTRAINT "FK_TMC_CMP" FOREIGN KEY ("TMC_AUTO_KEY") REFERENCES "QCTL"."TERM_CODES" ("TMC_AUTO_KEY") ENABLE, CONSTRAINT "FK_COC_CMP_OFFICE" FOREIGN KEY ("COC_OFFICE") REFERENCES "QCTL"."COUNTRY_CODES" ("COC_AUTO_KEY") ENABLE, CONSTRAINT "FK_GLD_CMP_AR_PREPAY" FOREIGN KEY ("GLD_AR_PREPAY") REFERENCES "QCTL"."GL_DISTRIBUTION" ("GLD_AUTO_KEY") ENABLE, CONSTRAINT "FK_TMC_CMP_VEND" FOREIGN KEY ("TMC_VEND_OVERRIDE") REFERENCES "QCTL"."TERM_CODES" ("TMC_AUTO_KEY") ENABLE, CONSTRAINT "FK_CLC_CMP" FOREIGN KEY ("CLC_AUTO_KEY") REFERENCES "QCTL"."CLASS_CODES" ("CLC_AUTO_KEY") ENABLE, CONSTRAINT "FK_COC_CMP" FOREIGN KEY ("COC_AUTO_KEY") REFERENCES "QCTL"."COUNTRY_CODES" ("COC_AUTO_KEY") ENABLE, CONSTRAINT "FK_DTC_CMP" FOREIGN KEY ("DTC_AUTO_KEY") REFERENCES "QCTL"."DELIVERY_TERMS" ("DTC_AUTO_KEY") ENABLE, CONSTRAINT "FK_MKC_CMP" FOREIGN KEY ("MKC_AUTO_KEY") REFERENCES "QCTL"."MARKUP_CODES" ("MKC_AUTO_KEY") ENABLE, CONSTRAINT "FK_GLD_CMP_AP_SUSPENSE" FOREIGN KEY ("GLD_AP_SUSPENSE") REFERENCES "QCTL"."GL_DISTRIBUTION" ("GLD_AUTO_KEY") ENABLE, CONSTRAINT "FK_CUR_CMP" FOREIGN KEY ("CUR_AUTO_KEY") REFERENCES "QCTL"."CURRENCY" ("CUR_AUTO_KEY") ENABLE, CONSTRAINT "FK_TXT_CMP" FOREIGN KEY ("TXT_AUTO_KEY") REFERENCES "QCTL"."TAX_TABLE" ("TXT_AUTO_KEY") ENABLE, CONSTRAINT "FK_QQM_IMS_CMP" FOREIGN KEY ("QQM_IMS_AUTO_KEY") REFERENCES "QCTL"."IMAGE_SERVER" ("IMS_AUTO_KEY") ENABLE, CONSTRAINT "FK_MFG_CMP" FOREIGN KEY ("MFG_AUTO_KEY") REFERENCES "QCTL"."MANUFACTURER" ("MFG_AUTO_KEY") ENABLE, CONSTRAINT "FK_APR_CMP" FOREIGN KEY ("APR_AUTO_KEY") REFERENCES "QCTL"."APPROVAL_CODES" ("APR_AUTO_KEY") ENABLE, CONSTRAINT "FK_SYSR_CMP_PO" FOREIGN KEY ("SYSUR_IQ_NOTIFY_PO") REFERENCES "QCTL"."SYS_USERS" ("SYSUR_AUTO_KEY") ENABLE, CONSTRAINT "FK_FPC_CMP" FOREIGN KEY ("FPC_AUTO_KEY") REFERENCES "QCTL"."FAX_PREFIX_CODES" ("FPC_AUTO_KEY") ENABLE, CONSTRAINT "FK_GLD_CMP_AP_EXPENSE" FOREIGN KEY ("GLD_AP_EXPENSE") REFERENCES "QCTL"."GL_DISTRIBUTION" ("GLD_AUTO_KEY") ENABLE, CONSTRAINT "FK_SVC_CMP" FOREIGN KEY ("SVC_AUTO_KEY") REFERENCES "QCTL"."SHIP_VIA_CODES" ("SVC_AUTO_KEY") ENABLE, CONSTRAINT "FK_CMG_CMP" FOREIGN KEY ("CMG_AUTO_KEY") REFERENCES "QCTL"."COMPANY_GROUPS" ("CMG_AUTO_KEY") ENABLE, CONSTRAINT "FK_SYSR_CMP_RFQ" FOREIGN KEY ("SYSUR_IQ_NOTIFY_RFQ") REFERENCES "QCTL"."SYS_USERS" ("SYSUR_AUTO_KEY") ENABLE, CONSTRAINT "FK_GLD_CMP_AP_PREPAY" FOREIGN KEY ("GLD_AP_PREPAY") REFERENCES "QCTL"."GL_DISTRIBUTION" ("GLD_AUTO_KEY") ENABLE, CONSTRAINT "FK_CFF_CMP" FOREIGN KEY ("CFF_AUTO_KEY") REFERENCES "QCTL"."CK_FILE_FORMAT_CODES" ("CFF_AUTO_KEY") ENABLE, CONSTRAINT "FK_CMP_CMP" FOREIGN KEY ("CMP_PARENT") REFERENCES "QCTL"."COMPANIES" ("CMP_AUTO_KEY") ENABLE ) SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING

cameronclaero commented 11 months ago

Traceback (most recent call last): File "/usr/lib64/python3.11/runpy.py", line 198, in _run_module_as_main return _run_code(code, main_globals, None, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib64/python3.11/runpy.py", line 88, in _run_code exec(code, run_globals) File "/home/cameron/.vscode-server/extensions/ms-python.python-2023.16.0/pythonFiles/lib/python/debugpy/adapter/../../debugpy/launcher/../../debugpy/main.py", line 39, in cli.main() File "/home/cameron/.vscode-server/extensions/ms-python.python-2023.16.0/pythonFiles/lib/python/debugpy/adapter/../../debugpy/launcher/../../debugpy/../debugpy/server/cli.py", line 430, in main run() File "/home/cameron/.vscode-server/extensions/ms-python.python-2023.16.0/pythonFiles/lib/python/debugpy/adapter/../../debugpy/launcher/../../debugpy/../debugpy/server/cli.py", line 317, in run_module run_module_as_main(options.target, alter_argv=True) File "/home/cameron/.vscode-server/extensions/ms-python.python-2023.16.0/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py", line 238, in _run_module_as_main return _run_code(code, main_globals, None, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/cameron/.vscode-server/extensions/ms-python.python-2023.16.0/pythonFiles/lib/python/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_runpy.py", line 124, in _run_code exec(code, run_globals) File "/home/cameron/development/sqlacodegen/src/sqlacodegen/main.py", line 3, in main() File "/home/cameron/development/sqlacodegen/src/sqlacodegen/cli.py", line 92, in main outfile.write(generator.generate()) ^^^^^^^^^^^^^^^^^^^^ File "/home/cameron/development/sqlacodegen/src/sqlacodegen/generators.py", line 172, in generate self.fix_column_types(table) File "/home/cameron/development/sqlacodegen/src/sqlacodegen/generators.py", line 637, in fix_column_types if isinstance(table.c[colname].type, String):


  File "/home/cameron/.local/lib/python3.11/site-packages/sqlalchemy/sql/base.py", line 1623, in __getitem__
    return self._index[key][1]
           ~~~~~~~~~~~^^^^^
KeyError: ' CAP_RESTRICT_LEVEL'