【问题标题】:Django can't migrate after cloning repository克隆存储库后 Django 无法迁移
【发布时间】:2018-01-18 20:35:52
【问题描述】:

我一直在另一台机器上使用本地 postgis 数据库开发 Django 应用程序。我把整个东西都推送到了 GitHub,除了 .gitignore 中的内容。

.gitignore

venv
*.pyc
staticfiles
.env
.idea
uploads

回到家并克隆了 repo,安装了所有需求并创建了一个新的本地 Postgres 数据库,该数据库具有与 settings.py 中相同的设置和相同的 PostGIS 扩展。

settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        'NAME': 'db_name',
        'USER': 'postgres',
        'PASSWORD': '******',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

但我无法创建任何迁移。我只是得到一个错误。

django.db.utils.ProgrammingError: relation "something_something" does not exist

我尝试回滚到第一个初始迁移文件,但结果相同。

makemigrations applabel 0001

就好像 Django 认为它仍然是同一个数据库,但缺少所有表。但我无法迁移并让 Django 创建它们。

我怎样才能摆脱这个烂摊子?我可以以某种方式迁移吗?

如果您需要我遗漏的其他信息,请询问。

【问题讨论】:

  • 你在migrate --fake之后尝试过makemigration
  • 很好的建议。我刚刚尝试运行 migrate --fakemigrate --fake-initial 仍然会抛出该错误。

标签: python django postgresql postgis database-migration


【解决方案1】:

由于我不知道您的回购协议要进行试验并具体回答。我能想到的如下

  1. 使用migrate --fake(如评论中所述)
  2. 尝试将主机条目从 localhost 更改为 127.0.0.1
  3. 在 psql 中创建一个具有必要权限的角色(用户)并在settings 中使用它们。
  4. 检查端口权限。

请注意,这只是猜测。

【讨论】:

    猜你喜欢
    • 2020-07-04
    • 2017-10-17
    • 2016-10-09
    • 2015-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-02
    • 2021-09-01
    相关资源
    最近更新 更多