Césarの答えは、Oracleのサポートに関して真実です。django\db\backends\oracle\introspection.pyしかし、 2箇所修正することで大まかなモデルを生成することができました。
cursor.executeの行を次のように変更get_table_listします。
cursor.execute("SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = 'OTHERSCHEMA'")
の最初の行のuser_table_colstoを次のように変更します。 ALL_TAB_COLUMNScursor.executeget_table_description
cursor.execute("""
SELECT
column_name,
data_default,
CASE
WHEN char_used IS NULL THEN data_length
ELSE char_length
END as internal_size
FROM ALL_TAB_COLUMNS
WHERE table_name = UPPER(%s)""", [table_name])
次に、2cursor.execute行目を次のように変更get_table_descriptionします。cursor.execute("SELECT * FROM OTHERSCHEMA.%s WHERE ROWNUM < 2" % self.connection.ops.quote_name(table_name))
これは、ポリシーによってデータベースへの変更が禁止されているレガシー データベースであるため、1 回限りの実行には適していました。
モデルが完成したら、さらにいくつかの変更が必要です。いくつかのクラスで、主キー参照と外部キー参照が欠落しているようです。これらを手動で追加します。
私が行った最後の変更はclass Meta:、正しいスキーマを参照するようにすべてのインスタンスを変更することでした:
class Meta:
db_table = u'"SCHEMA"."TABLE_NAME"' # Notice the quoting needed