Python Django:迁移时遇到操作错误

Python Django:迁移时遇到操作错误,python,django,django-models,django-migrations,Python,Django,Django Models,Django Migrations,我在ubuntu服务器上部署代码时遇到了这个错误。我在本地(macOS Mojave)测试了迁移,没有出错 我试图删除所有迁移文件,除了\uuuu intit\uuuu.py,但Django给出了相同的错误 错误回溯(home是我的应用程序的名称): 我有一个型号Customer和一个型号Order,db_表名为“xxx(S)”。也许“(S)”触发了一些奇怪的行为。我是SQL和django的新手。有人能帮我解释一下吗 我正在使用Django3.0.3(2.2.5也失败了)和ubuntu 16.0

我在ubuntu服务器上部署代码时遇到了这个错误。我在本地(macOS Mojave)测试了迁移,没有出错

我试图删除所有迁移文件,除了
\uuuu intit\uuuu.py
,但Django给出了相同的错误

错误回溯(home是我的应用程序的名称):

我有一个型号
Customer
和一个型号
Order
,db_表名为“xxx(S)”。也许“(S)”触发了一些奇怪的行为。我是SQL和django的新手。有人能帮我解释一下吗

我正在使用Django3.0.3(2.2.5也失败了)和ubuntu 16.04。这段代码似乎在MacOS上运行良好

编辑2:

迁移脚本:0001_initial.py

# Generated by Django 3.0.3 on 2020-02-21 16:49

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Customer',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=255, unique=True)),
            ],
        ),
        migrations.CreateModel(
            name='Order',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('orderNum', models.CharField(max_length=255, unique=True)),
                ('customer_idx', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='home.Customer')),
            ],
            options={
                'db_table': 'xxx(S)',
            },
        ),
    ]

您指的是型号
订单
到数据表
xxx(S)
。由于型号
订单
客户
型号相关,
客户
型号也应存在于同一数据库
xxx中

为客户创建元类并引用相同的数据库

class Meta:
    db_table = 'xxx(S)'

我终于明白了。sql中的括号表示列选择,因此表名“xxx(S)”被解释为选择表“xxx”的列“S”。因此,只需更改表名即可解决此问题。

您可能需要使用适当的名称来编辑您的问题-仅通过回溯来调试此类问题是完全不可能的。此外:“我试图删除所有迁移文件”=>我不知道您从何处获得此想法,但这是最糟糕的事情了。我试图刷新数据库,因为它是空的,我还删除了迁移文件并重拨了makemigrations命令,因为我认为这样做可以重置所有内容@Brunodesshuilliers上传0001_initial.py迁移文件的代码。我已经上传了最小案例和迁移文件。谢谢大家!@m0dknight
# Generated by Django 3.0.3 on 2020-02-21 16:49

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Customer',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=255, unique=True)),
            ],
        ),
        migrations.CreateModel(
            name='Order',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('orderNum', models.CharField(max_length=255, unique=True)),
                ('customer_idx', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='home.Customer')),
            ],
            options={
                'db_table': 'xxx(S)',
            },
        ),
    ]
class Meta:
    db_table = 'xxx(S)'