2016-10-19 11 views
1

私はDjangoアプリケーションを開発しており、動的モデルとデータベーステーブルの生成が必要です。私ははるかに幅広く検索しましたが、Django APIにはこの関数が含まれていないかのようです。私が集めたものから、Southにこれを行う機能があります(つまり、south.db.create_table)。しかし、Southのリリースノートから収集したものから、SouthはDjango 1.7以降と互換性がなく、私のプロジェクトはDjango 1.9を使用して構築されています。Django:データベーステーブルをプログラム的に/動的に作成する

私はすでに、私は次のメソッドを使用して、私のデータベースに移行したいスキーマのモデルインスタンスを作成するスクリプト書いた

attrs = {'__module__':model_location, 'Meta':Meta} 
model = type(table_name, (models.Model,), attrs) 

P.S.をこのスクリプトの全体ではないことに注意してください。これが私に役立つと思うなら、私はそれを要求に応じて追加することができます。

Django 1.9でSouth 1.0.2を使用するための回避策が見つかりましたか?誰も私が南のないこの機能を達成する方法についてのアイデアを持っていない場合は?私は代わりに(テーブルを動的に生成するのではなく)代替の方法を考えようとしましたが、これは私のプロジェクトの範囲を考えれば、最も簡潔できれいな結果を提供するようです。

ありがとうございました!

答えて

2

最近のDjangoのバージョンとの互換性がないのは、Django 1.7以降、 "migrations"という名前でrolled into Djangoでした。同様の機能をお探しの場合は、開始点はdocumentation on migrationsとなります。特に、RunSQLのセクションに興味があります。

移行モジュールを避ける場合は、perform raw SQL queriesでもかまいません。

+0

お返事ありがとうございます!私は両方を調べている。しかし、私は、安全上の理由から生のSQLクエリを避けることを望んでいました。 –

関連する問題