如何将 PostgreSQL 数据库脚本更改与 Django 后端同步
How to sync the PostgreSQL database script changes with Django back-end
我在 Django 后端获得了一个网站 运行 的新项目。这使用 PostgreSQL 数据库。
我在本地系统上完成的更改。
我的客户给了我一台具有适当 FTP、SSH 和数据库访问权限的实时远程计算机。他还创建了一个数据库转储文件并将其提供给我。
我已经完成了必要的代码和数据库更改。
但是现在我不知道如何将这些数据库更改同步回服务器。
我对 Django 和 PostgreSQL 的东西还很陌生,不知道如何完成这项任务。
在这方面您的帮助将不胜感激。
谢谢
您不应该直接对数据库进行更改。这就是 migrations 的目的。
正如 Daniel Roseman 所说,Django 迁移比 "Just replace the old Database schema with the new one" 更容易做到这一点。
因为人们很容易犯错误,而且很容易忘记你编辑的是哪个字段,或者 remove.And 有时当你在数据库中创建的字段与在 django 模型中创建的字段有点不同时会导致问题。
例如
- 在数据库中,您像这样设置了一个 create_time 字段 datetime(6) NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP
- 在 Django 模型中,您在 Django 模型中设置 create_time = models.DateTimeField()
您的项目将运行,但您不会注意到更新记录时会出现问题,但 create_time 也会更新。 project.Besides很难发现bug和维护,如果你使用docker部署你的项目,在docker文件中你可以直接使用
python manage.py makemigrations
python manage.py migrate
确保每个数据库都具有相同的数据库schema.You不必一一替换数据库。
这对我有帮助:
我在设置中更改了数据库名称,并在 PGADMIN(运行 PostgreSQL 的接口)
中创建了一个新数据库
然后我做了两个迁移:makemigrations 和 migrate
我在 Django 后端获得了一个网站 运行 的新项目。这使用 PostgreSQL 数据库。 我在本地系统上完成的更改。 我的客户给了我一台具有适当 FTP、SSH 和数据库访问权限的实时远程计算机。他还创建了一个数据库转储文件并将其提供给我。 我已经完成了必要的代码和数据库更改。 但是现在我不知道如何将这些数据库更改同步回服务器。 我对 Django 和 PostgreSQL 的东西还很陌生,不知道如何完成这项任务。 在这方面您的帮助将不胜感激。 谢谢
您不应该直接对数据库进行更改。这就是 migrations 的目的。
正如 Daniel Roseman 所说,Django 迁移比 "Just replace the old Database schema with the new one" 更容易做到这一点。 因为人们很容易犯错误,而且很容易忘记你编辑的是哪个字段,或者 remove.And 有时当你在数据库中创建的字段与在 django 模型中创建的字段有点不同时会导致问题。
例如
- 在数据库中,您像这样设置了一个 create_time 字段 datetime(6) NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP
- 在 Django 模型中,您在 Django 模型中设置 create_time = models.DateTimeField()
您的项目将运行,但您不会注意到更新记录时会出现问题,但 create_time 也会更新。 project.Besides很难发现bug和维护,如果你使用docker部署你的项目,在docker文件中你可以直接使用
python manage.py makemigrations
python manage.py migrate
确保每个数据库都具有相同的数据库schema.You不必一一替换数据库。
这对我有帮助: 我在设置中更改了数据库名称,并在 PGADMIN(运行 PostgreSQL 的接口)
中创建了一个新数据库然后我做了两个迁移:makemigrations 和 migrate