迁移中的Django rawSQL:您的SQL语法有错误,但是SQL是错误的

2024-07-03 08:11:37 发布

您现在位置:Python中文网/ 问答频道 /正文

对于我的django应用程序(mysql后端),我有一个非常小的迁移,看起来像这样

operations = [
    migrations.CreateModel(
        name='Mileage',
        fields=[
            ('id', models.AutoField(auto_created=True, primary_key=True,
                                    serialize=False, verbose_name='ID')),
            ('miles', models.DecimalField(max_digits=8, decimal_places=1)),
            ('start_location', models.CharField(max_length=255)),
            ('end_location', models.CharField(max_length=255)),
        ],
    ),
    migrations.CreateModel(
        name='Trip',
        fields=[
            ('id', models.AutoField(auto_created=True, primary_key=True,
                                    serialize=False, verbose_name='ID')),
            ('start_location', models.CharField(max_length=255)),
            ('end_location', models.CharField(max_length=255)),
            ('trip_date', models.DateTimeField(verbose_name='trip date')),
        ],
    ),
    migrations.RunSQL('mymileages.sql'),
]

mymileages.sql文件如下所示:

^{pr2}$

我可以在迁移之外运行这个SQL,它工作得很好,没有问题。在

但是,当我运行迁移时,会出现错误:

Programming error: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'mymileages.sql' at line 1")


Tags: nameidtruefieldsverbosesqlmodelsmigrations
1条回答
网友
1楼 · 发布于 2024-07-03 08:11:37

正如其他人所指出的那样,我做这件事是错误的。在

我已经添加了一个fixture,并将使用该文件来引入数据。在

首先,我必须将数据添加到表中(我只是手动运行SQL文件以将其添加到适当的表中)。在

然后我跑了

manage.py dumpdata mileage.mileage indent 2 format=json output initial_mileages.json

创建了我的设备,然后我加载了它

loaddata

它进口的很漂亮。在

相关问题 更多 >