Django 迁移 | Python
先决条件:Django 模型
没有这样的表? –
product/models.py
中定义的类只是我们的数据库将是什么样子的想法,但它没有在数据库中创建任何表。我们可以假设类电话作为概念模式。在创建任何表之前,如果我们在创建之前尝试访问该表,就会抛出这样的错误。
OperationalError at /admin/product/phone/
no such table: product_phone
makemigrations 命令 –
Python提供了某些命令以方便用户使用,因此无需深入了解 SQL 的细节,
用户可以与数据库交互。现在,我们已经创建了类(数据库的概念架构),我们可以使用 migrate 命令在数据库中创建实际的架构。如果正在运行,请使用 CTRL+C 停止服务器,然后在数据库中运行以下命令。
python manage.py makemigrations
上面的命令会让项目知道我们要在数据库中进行更改。您将看到以下引用Create model Phone 。
这个命令有什么作用?如果我们希望在数据库中进行更改,此命令将生成应该执行的 SQL 语句。
如果您想查看生成的命令,请导航到product/migrations/0001_initial.py 。您将看到文件内容
如果您现在尝试使用命令运行服务器
python manage.py runserver
你会看见
You have 1 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): product. Run ‘python manage.py migrate’ to apply them.
如警告中所述,运行
python manage.py migrate
在您的终端中。这将导致在数据库中创建表。