sql >> データベース >  >> RDS >> Oracle

Oracleデータベースを使用したDjangoinspectdbの問題

    2つのこと:

    1. Inspectdbは公式にoracleをサポートしていません( Django Docs-inspectdb )悲しい時。
    2. DjangoはOracleスキーマをあまり強力にサポートしていません(未解決のDjangoチケット6148を参照> )したがって、スキーマのメインユーザーを使用して接続でき、デフォルトのスキーマをイントロスペクトしたいスキーマを作成できれば、幸運が得られる可能性があります。

    introspection.pyのselectを変更することで、基本的なモデルファイルの出力を取得することができました。私の場合、django / db / backends / oracle / introspection.py(40行目あたり)のget_table_list関数を次のように変更しました:

    def get_table_list(self, cursor):
        "Returns a list of table names in the current database."
        cursor.execute("SELECT TABLE_NAME FROM USER_TABLES")
        return [row[0].lower() for row in cursor.fetchall()]
    

    def get_table_list(self, cursor):
        "Returns a list of table names in the current database."
        cursor.execute("SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = 'SCHEMA_TO_QUERY'")
        return [row[0].lower() for row in cursor.fetchall()]
    

    しかし、Oracleでのスキーマの全体的なサポートが不十分であると読んだとき、djangoをあきらめました



    1. PHPからMySQL実行可能ファイルを自動的に見つけることはできますか?

    2. 警告#1264:mysqlの範囲外エラー

    3. SQLServer2008のデータベースからのデータを使用して単一のテーブルをバックアップします

    4. SQLビューに主キーを追加する