python数据库迁移命令_创建和进行数据库迁移,同步数据库

模型(model)建好后,django可以根据这个模型(model)在数据库中创建一张数据表格。

Django自带一个数据库迁移(migration)系统来跟踪对模型(models)的修改,然后同步到数据库。

migrate命令会应用到所有在INSTALLED_APPS中的应用。

它会根据当前的模型(models)和数据库迁移(migrations)来同步数据库。

首先,创建一个数据库迁移(migration)。

在项目主目录下,执行以下命令:

python manage.py makemigrations blog

你会看到以下输出:

Migrations for 'blog':

0001_initial.py;

- Create model Post

Django在blog应用下的migrations目录中创建了一个0001——initial.py文件。

可以打开这个文件查看数据库迁移的内容。

也可以使用sqlmigrate命令查看数据库情况。

运行以下命令:

python manage.py sqlmigrate blog 0001

输出如下:

BEGIN;

CREATE TABLE

"blog_post" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,

"title" varchar(250) NOT NULL, "slug" varchar(250) NOT NULL, "body"

text NOT NULL, "publish" datetime NOT NULL, "created" datetime NOT

NULL, "updated" datetime NOT NULL, "status" varchar(10) NOT NULL,

"author_id" integer NOT NULL REFERENCES "auth_user"

("id"));

CREATE INDEX

"blog_post_2dbcba41" ON "blog_post" ("slug");

CREATE INDEX

"blog_post_4f331e2f" ON "blog_post" ("author_id");

COMMIT;

以上SQL语句是为SQLite数据库准备的。

Django生成的表名前缀为应用名之后跟上模型(model)的小写(blog_post),也可以通过在模型(models)的Meta类中使用db_table属性来指定表名。

Django会自动为每个模型(model)创建一个主键,也可以通过在模型(model)中的某个字段上设置primarry_key=True来指定主键。

让我们根据新模型(model)来同步数据库。

运行以下的命令来应用已存在的数据迁移(migrations):

python manage.py migrate

你应该会看到以下行跟在输出的末尾:

Applying blog.0001_initial... OK

我们刚刚为INSTALLED_APPS中所有的应用进行了数据库迁移(migrations),包括我们的blog应用。

在进行了数据库迁移(migrations)之后,数据库会反映我们模型的当前状态。

如果因为添加,删除,或是改变了存在的模型(models)中的字段,或者添加了新的模型(models)而编辑了models.py文件,都需要通过使用makemigrations命令做一次新的数据库迁移(migration)。

数据库迁移(migration)允许Django来保持对模型(model)改变的跟踪。

之后必须通过migrate命令来保持数据库与模型(models)同步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django数据库迁移是指在使用Django框架开发应用时,对数据库模型的变更进行同步的过程。可以通过在终端运行命令`python manage.py makemigrations`来生成数据库迁移文件,并通过`python manage.py migrate`来应用这些数据库迁移文件。 为了进行数据库迁移,首先需要在项目的settings.py文件中配置数据库连接信息,包括数据库类型、数据库名称、用户名、密码、主机和端口等。例如,可以使用MySQL作为数据库并在settings.py中配置相关信息。 其次,需要在项目中新建app,并通过在settings.py文件中注册该app。然后,可以通过运行命令`python manage.py makemigrations app_name`来为该app生成数据库迁移文件。 在执行数据库迁移前,需要确保已经在数据库创建了对应的数据库。可以通过工具如Navicat在数据库中新建数据库。 执行数据库迁移命令`python manage.py migrate`会将数据库模型的变更应用到数据库中,从而实现数据库结构的更新。 当执行完成数据库迁移后,数据库就会与项目中的模型定义保持同步。这样,就可以在项目中对数据库进行操作,并确保数据库的结构和数据的一致性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [django迁移数据库错误问题解决](https://download.csdn.net/download/weixin_38730977/12861095)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [django数据迁移](https://blog.csdn.net/lyhwhitewhale/article/details/125190719)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值