无法将数据库架构迁移到Heroku(Postgres)

时间:2017-01-09 20:57:22

标签: python django postgresql heroku database-migration

我已经在我的本地环境中设置了所有内容,并且在Heroku服务器上设置了我的网站代码,我只是在将模式迁移到Heroku服务器上的PostgreSQL数据库时遇到了麻烦。每当我尝试update dc set prdintegritycheckbox = '0' from [dbo].[DailyChecks] dc where dc.server in (Select [resid] from [dbo].[dailyChecksIntegrityErrorState2]) and dc.server = '1077' 时,我都会得到以下内容(这将是初始迁移):

heroku run python manage.py migrate

这似乎很好,但后来使用 Running python manage.py migrate on baseballstatview... up, run.1653 (Free) Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions, statview Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying sessions.0001_initial... OK Applying statview.0001_initial... OK 它告诉我我有0个表,甚至当我运行heroku pg:info时,这就是我得到的:

heroku run python manage.py showmigrations

所以似乎迁移没有通过,我想知道为什么会这样。数据库是空的,我已经尝试重置它并再次尝试但似乎没有任何效果。

编辑:以下是dj_database_url的相关 Running python manage.py showmigrations on baseballstatview... up, run.5059 (Free) admin [ ] 0001_initial [ ] 0002_logentry_remove_auto_add auth [ ] 0001_initial [ ] 0002_alter_permission_name_max_length [ ] 0003_alter_user_email_max_length [ ] 0004_alter_user_username_opts [ ] 0005_alter_user_last_login_null [ ] 0006_require_contenttypes_0002 [ ] 0007_alter_validators_add_error_messages [ ] 0008_alter_user_username_max_length contenttypes [ ] 0001_initial [ ] 0002_remove_content_type_name sessions [ ] 0001_initial statview [ ] 0001_initial

settings.py

1 个答案:

答案 0 :(得分:0)

在您尝试引入本地设置之前,从代码片段中可以看到您正在加载dj_database_url配置。这就是问题。这里发生的是您的本地设置覆盖了生产设置(使用Postgres)。

运行迁移时发生的事情是:

  • Heroku正在创建一个新的本地SQLite数据库。
  • 进行迁移。
  • 说它成功了。
  • 退出。

如果您将本地设置移到db_database_url调用之上,那么事情应该开始神奇地为你工作了!