python - 邮政数据库。 models.py 没有转化为数据库方案

标签 python mysql django postgresql

有两个问题。首先是由于 Django 将模型类名转换为带有应用程序名称前缀的,并且就该部分已解决 'Relation does not exist' error after transferring to PostgreSQL我想提出不同的问题可能是正确的。我遇到了诸如 relation "blog_userprofile"does not exist 之类的错误,并由

发现
select column_name, data_type, character_maximum_length
from INFORMATION_SCHEMA.COLUMNS where table_name = 'closer';  

现有数据库中没有列 closer,所以 python manage.py migrate , python manage.py make migrations , python manage.py make appname, python manage.py syncdb 基本上都没有正常工作,没有将models.py 转换成数据库scheme。

为什么?我该如何解决这个问题?我尝试从 models.py 中删除所有内容并再次运行所有命令,但它仍然在不存在的字段上输出错误(?),如 django.db.utils.ProgrammingError: relation "blog_community"already exists 。我尝试使用 --fake initialflushreset 但这些都没有帮助。

最佳答案

由于您正在从 mysql 迁移到 postgresql,可以安全地假设您的 postgresql 数据库没有您需要的任何数据。

您当前的模型可能可以直接导入到 postgresql 中。但是,这并不意味着您存档的迁移文件与 postgresql 兼容。

很可能您的模型在一段时间内不断演变,并且很可能存在许多与 postgresql 不兼容的旧迁移文件。

第 1 步:浏览项目中的所有应用并清除迁移文件夹。

第 2 步:删除 postgresql 数据库(假设它没有任何数据)

第 3 步:执行以下命令为 django 内部表创建迁移

 ./manage.py makemigrations

第 4 步:为您的每个应用执行以下命令。

 ./manage.py makemigrations my_app_name

第四步:最后,做

 ./manage.py migrate.

关于python - 邮政数据库。 models.py 没有转化为数据库方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41202674/

相关文章:

python - Django,覆盖多对多字段ModelManager

mysql - 如果不存在则插入否则更新而无需重复键或存储过程 Mysql

django - docker-compose 与 Dockerfile 入口点脚本冲突

python - 日期为 'unicode',我想知道有多少天

python - beautifulsoup find_all() 类快捷方式不起作用

python - 用于将 3d 数组展平为 pandas df 的内置函数?

php - Yii2在sql查询中使用 "AS variable"并将其显示在 View 中

MySQL LIKE 和 NOT LIKE 缺少一条记录

python - Django 对象管理器 'lower' 参数

python - 我面临属性错误 : 'NoneType' object has no attribute 'split' in Python