我正在開發一個大型的基於Django的項目。在我的筆記本電腦上,我使用SQLite3作爲數據庫。我爲我的模型創建了很多遷移。一切似乎工作。Django將模式從sqlite遷移到postgresql
然後我想在生產服務器上使用PostgreSQL。我準備了一個空的數據庫並試圖做manage.py syncdb
。由於不存在關係,我突然發現錯誤。
Operations to perform:
Synchronize unmigrated apps: suit, messages, humanize, imagekit, staticfiles, crispy_forms, storages, django_extensions, localflavor, registration
Apply all migrations: [here list of my apps], sites, user_auth, sessions, auth
Synchronizing apps without migrations:
Creating tables...
Creating table registration_registrationprofile
Running deferred SQL...
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/django/db/backends/utils.py", line 62, in execute
return self.cursor.execute(sql)
psycopg2.ProgrammingError: relation "user_auth_account" does not exist
試圖將我的SQLite數據庫,並用新的SQLite執行syncdb
:它創建無問題的模式。
在這裏,我已經意識到SQLite不使用外鍵關係,只是使用integer
類型的所有引用。所以它適用於sqlite。非常聰明,Django。但是我所有的模型都依賴於對方。我想使用不同的數據庫。
現在我有一堆只在SQLite上工作的遷移。
據我所知,可以爲模型第一次創建的每個應用程序逐個運行遷移。但它會是一個地獄。
是否可以檢測依賴關係並按正確的順序運行這些遷移?
太棒了,謝謝,哥們!在我的情況下,它是'django-registration-redux == 1.1'。更新到1.2,現在一切正常! – baldr