一个项目中两个应用程序的 Django 两个数据库。如何正确迁移?
Django two databases for two apps in one project. Haw to make migration correctly?
我想对应用 'app1' 使用 'db1',对 'app2' 使用 'db2'。
(我不需要应用程序和数据库之间的任何同步。它们独立但位于一个 'mysite' django 项目中。)
我在 'app1' 中迁移了 'db1'。
/app1/migrations/0001_initial.py。它包含 类 for 'db1' ('default') 结构。
现在
- 我将数据库 'db2' 附加到 settings.py DATABASES 字典。 'app1' 使用 'default' 数据库。 (db1 是 'default')
- 我创建了 $startapp 'app2' 文件夹
- 我将 'app2.apps.App2Config' 放入 INSTALLED_APPS 列表
- 我执行了 $makemigrations app2
app2/migrations/文件夹为空(只有init.py所在)
任何 makemigrations exectuions 现在写:
No changes detected in app 'app2'
我运行 $migrate --datbase=db2
它写着:
Operations to perform: Apply all migrations: admin, auth,
contenttypes, db1, sessions
Running migrations: Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
....
....
Applying db1.0001_initial... OK
一切都没有改变。没有任何关于 'db2' 的提及,如我所见,没有迁移升级,app2/migrations 文件夹还为空。
我需要做什么才能为 'db2' 制作模型并在 'app2' 代码中使用它?
谢谢
对于 DATABASE_ROUTERS 的应用程序 2 'makemigrations' 是必需的
settings.py: [docs.djangoproject.com/en/1.10/topics/db/multi-db][1]
'migrate' 函数没有一个也能工作,但是 'makemigrations' 必须有
router.py 文件 Class App2Router(对象)指定为 'app' & 'db2'.
如果 makemigrates 已完成 - 0001_intial.py 现在,现在
你可以迁移 --database=db2
我想对应用 'app1' 使用 'db1',对 'app2' 使用 'db2'。 (我不需要应用程序和数据库之间的任何同步。它们独立但位于一个 'mysite' django 项目中。)
我在 'app1' 中迁移了 'db1'。 /app1/migrations/0001_initial.py。它包含 类 for 'db1' ('default') 结构。
现在 - 我将数据库 'db2' 附加到 settings.py DATABASES 字典。 'app1' 使用 'default' 数据库。 (db1 是 'default') - 我创建了 $startapp 'app2' 文件夹 - 我将 'app2.apps.App2Config' 放入 INSTALLED_APPS 列表 - 我执行了 $makemigrations app2 app2/migrations/文件夹为空(只有init.py所在) 任何 makemigrations exectuions 现在写:
No changes detected in app 'app2'
我运行 $migrate --datbase=db2 它写着:
Operations to perform: Apply all migrations: admin, auth, contenttypes, db1, sessions
Running migrations: Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
....
....Applying db1.0001_initial... OK
一切都没有改变。没有任何关于 'db2' 的提及,如我所见,没有迁移升级,app2/migrations 文件夹还为空。
我需要做什么才能为 'db2' 制作模型并在 'app2' 代码中使用它? 谢谢
对于 DATABASE_ROUTERS 的应用程序 2 'makemigrations' 是必需的 settings.py: [docs.djangoproject.com/en/1.10/topics/db/multi-db][1]
'migrate' 函数没有一个也能工作,但是 'makemigrations' 必须有 router.py 文件 Class App2Router(对象)指定为 'app' & 'db2'.
如果 makemigrates 已完成 - 0001_intial.py 现在,现在 你可以迁移 --database=db2