Django - 迁移后未创建表

     2023-02-24     225

关键词:

【中文标题】Django - 迁移后未创建表【英文标题】:Django - Table is not creating after migration 【发布时间】:2021-01-21 01:00:24 【问题描述】:

我想在 DigitalOcean 服务器上使用 Postgres 数据库为我的 Django 项目添加新功能。问题是,在本地服务器上一切正常,但在生产服务器上,新模型的新表没有创建。我已删除所有迁移文件,再次进行迁移,但再次无法在数据库中看到新表。请帮我解决这个问题。我的确切错误:

relation "documents_app_employee" does not exist LINE 1: INSERT INTO "documents_app_employee" ("fin", "name", "surnam...

这是我的代码:

models.py:

class Employee(models.Model):
    fin = models.CharField(max_length=10, blank=True, null=True)
    name = models.CharField(max_length=20)
    surname = models.CharField(max_length=20)

    def __str__(self):
        return self.name + " " + self.surname

forms.py:

class CreateEmployeeForm(ModelForm):
    def save(self, commit=False):
        employee = super(CreateEmployeeForm, self).save(commit=False)
        Employee.objects.create(
            fin = employee.fin,
            name = employee.name,
            surname = employee.surname,
        )

    class Meta:
        model = Employee
        fields = '__all__'

删除和撤消迁移的脚本:

find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
find . -path "*/migrations/*.pyc"  -delete
pip3 uninstall django
pip3 install -r requirements.txt
python3 manage.py makemigrations
python3 manage.py migrate

但又得到:

ProgrammingError at /employee_document

relation "documents_app_employee" does not exist
LINE 1: INSERT INTO "documents_app_employee" ("fin", "name", "surnam...

【问题讨论】:

【参考方案1】:

我在 pythonanywhere 上迁移数据库时遇到了完全相同的问题。经过很多不同的方法,包括删除和撤消迁移并再次重做。

然后我终于使用了默认的 db.sqlite3 数据库并从中导出了 SQL(使用 sqlite3 浏览器)并使用在线 sql converter 将其转换为 Postgresql 并将我的项目连接到 localhost postgres 数据库,其中表是使用 pgadmin 中获得的 sql 查询 创建的。

然后它在将其推送到生产时运行良好。

*对不起,如果我的答案不是那么清楚,我是作为用户而不是浏览器的 *** 的新手。我会根据任何疑问编辑/评论我的答案。

【讨论】:

我理解你,兄弟,但你知道,我在服务器上的 Postgres 中有非常重要的数据。谢谢你的帮助! 所以使用 sql dump 来提取数据查询,并在上述过程之后再次使用这些数据查询重新输入您的数据库

Django 1.8:删除迁移文件夹后未检测到迁移

】Django1.8:删除迁移文件夹后未检测到迁移【英文标题】:Django1.8:Migrationsnotdetectedafterdeletingmigrationsfolder【发布时间】:2015-09-1302:30:22【问题描述】:我不小心删除了迁移文件夹,现在pythonmanage.pymakemigrations没有检测到我的模型... 查看详情

Django AWS Deploy:部署后未创建新的数据库表

】DjangoAWSDeploy:部署后未创建新的数据库表【英文标题】:DjangoAWSDeploy:AfterdeploymentnewDatabaseTablewasnotcreated【发布时间】:2018-02-2417:39:01【问题描述】:我最近对在PostgreSQL数据库上创建数据库表的models.py文件进行了一些更改。在... 查看详情

运行显式创建表的迁移时未创建 Django 表。

】运行显式创建表的迁移时未创建Django表。【英文标题】:Djangotablenotcreatedwhenrunningmigrationsthatexplicitlycreatetable.【发布时间】:2017-01-0808:28:58【问题描述】:在尝试对我的Django模型进行一些重大更改时,我把一切都搞砸了。幸运... 查看详情

Django 1.7 迁移不会重新创建删除的表,为啥?

】Django1.7迁移不会重新创建删除的表,为啥?【英文标题】:Django1.7migrationswon\'trecreateadroppedtable,why?Django1.7迁移不会重新创建删除的表,为什么?【发布时间】:2014-12-3001:11:26【问题描述】:使用Django1.7迁移。我不小心在我的数... 查看详情

django makemigrations 和 heroku 服务器上的迁移不创建表

】djangomakemigrations和heroku服务器上的迁移不创建表【英文标题】:djangomakemigrationsandmigrateonherokuserverdon\'tcreatetables【发布时间】:2016-11-1418:53:31【问题描述】:Python2.7版Django版本1.9.7我在heroku上创建了一个Django应用程序。我无法将... 查看详情

Django迁移错误表已经存在

】Django迁移错误表已经存在【英文标题】:Djangomigrationerrortableisalreadyexists【发布时间】:2019-11-1715:18:29【问题描述】:您好,我只有一个名为001_initial的迁移文件.....它包含我执行makemigrations时创建的所有createtable(sql)djangomakemigrat... 查看详情

Django 中的模型表被删除

】Django中的模型表被删除【英文标题】:TheModeltablesinDjangogotdeleted【发布时间】:2015-11-1818:42:48【问题描述】:django从模型定义中自动创建的数据库表,我使用mysql命令行删除了它。现在当我运行迁移时,它说表不存在。我使用ma... 查看详情

尝试创建 Django 迁移时,ForeignKey 缺少必需的位置参数 on_delete

】尝试创建Django迁移时,ForeignKey缺少必需的位置参数on_delete【英文标题】:ForeignKeymissingrequiredpositionalargumenton_deletewhentryingtocreateaDjangomigration【发布时间】:2018-11-0900:41:01【问题描述】:我正在尝试使用python/django和postgres创建表... 查看详情

sqlalchemy 创建表

...losed]【发布时间】:2016-08-1304:22:03【问题描述】:我来自django,我想知道如何创建我的表?在django中,我运行makemigration并进行迁移。sqlalchemy中的命令是什么?我需要为此编写一个特殊的脚本吗?【问题讨论】:您想运行数据库... 查看详情

如何从现有表创建 django 类 [重复]

】如何从现有表创建django类[重复]【英文标题】:Howtocreatedjangoclassfromexisttable[duplicate]【发布时间】:2019-06-2822:50:47【问题描述】:我有Django项目,我想将一个表(该表没有像model.py中的Django类那样定义,但它存在于PostgreSQLDB中)... 查看详情

如果在 django 中使用多个数据库,如何仅迁移所需的模型表

】如果在django中使用多个数据库,如何仅迁移所需的模型表【英文标题】:HowtoMigrateonlyrequiredmodelstableifusingMultipleDBindjango【发布时间】:2021-11-2123:00:24【问题描述】:我尝试在django中使用MultipleDB时迁移模型。默认情况下在两个... 查看详情

Django DB 迁移添加新列,但不要编辑表中已有的值

】DjangoDB迁移添加新列,但不要编辑表中已有的值【英文标题】:DjangoDBmigrationaddsnewcolumns,butdonoteditthevaluesalreadyinthetable【发布时间】:2021-02-0715:55:43【问题描述】:我有一个用于创建表并指定应添加到其中的值的python脚本。我使... 查看详情

Django migrate:不创建表

】Djangomigrate:不创建表【英文标题】:Djangomigrate:doesn\'tcreatetables【发布时间】:2016-05-3108:39:46【问题描述】:在一些错误之后,我删除了我的数据库,删除了所有迁移文件(我离开了init.py)。现在,当我跑步时pythonmigrate.pymakem... 查看详情

在 Django 中重命名模型(表)

】在Django中重命名模型(表)【英文标题】:Renamingmodels(tables)inDjango【发布时间】:2015-01-2607:30:48【问题描述】:所以我已经在Django中为我的数据库创建了模型,但现在想重命名模型。我已经更改了Meta类中的名称,然后进行迁... 查看详情

从 APN 迁移到 Firebase 后未重新生成 iOS 设备令牌

】从APN迁移到Firebase后未重新生成iOS设备令牌【英文标题】:iOSdevicetokennotregeneratedaftermigrationfromAPNtofirebase【发布时间】:2017-01-2011:04:19【问题描述】:我为iOS和Android创建了一个APP,并使用APN获取iOS的deviceToken和Android的GCM。我决... 查看详情

查询 django 迁移表

】查询django迁移表【英文标题】:Queryingdjangomigrationstable【发布时间】:2018-10-1013:34:17【问题描述】:如何从视图中查询django_migrations表?例如(我尝试过的,当然不行)fromdjango.dbimportmigrationslatest_migration=migrations.objects.all().order_... 查看详情

修改 Django 迁移文件,或使用 --fake 标志?

】修改Django迁移文件,或使用--fake标志?【英文标题】:ModifyDjangomigrationsfile,oruse--fakeflag?【发布时间】:2021-12-3103:44:39【问题描述】:我是Django新手,我正在重命名一些旧表。我还采用了一些表中已经存在的字段,并将它们设... 查看详情

通过网络客户端导入数据后未创建 Google BigQuery 表

】通过网络客户端导入数据后未创建GoogleBigQuery表【英文标题】:NoGoogleBigQuerytablecreatedafterimportingdatathroughwebclient【发布时间】:2015-06-2308:04:32【问题描述】:我目前正在通过https://cloud.google.com/bigquery/web-ui-quickstart上的示例来熟... 查看详情