2016-09-05 15 views
-1

我已经有了一个在Django后端运行网站的新项目。这使用PostgreSQL数据库。 我在本地系统上完成的更改。 我的客户已经给了我一个正确的FTP,SSH和数据库访问的现场远程机器。他还创建了一个数据库转储文件并提供给我。 我已完成必要的代码和数据库更改。 但现在我不知道如何将这些数据库更改同步回服务器。 我对Django和PostgreSQL的东西相当陌生,不知道如何完成这个任务。 我们非常感谢您的帮助。 谢谢如何使用Django后端同步PostgreSQL数据库脚本更改

回答

0

您不应直接对数据库进行更改。这是migrations的目的。

+1

你是什么意思,复杂?迁移是为了使它*简单*。这*是简单的方法。你不能只是“替换”一个数据库模式,所有的数据会发生什么? –

+0

因此,如果我在管理面板中引入了新的部分并创建了新的模型,那么根据示例迁移命令的样子会是什么样子?你能分享任何示例命令吗?这对我的入门很有帮助。谢谢 – YuDroid

1

就像丹尼尔罗斯曼说的那样,Django迁移将更容易做到这一点,而不是“只需用新的数据库模式替换旧的数据库模式”。 因为人们很容易犯错误,而且很容易忘记你编辑或删除了哪个字段。有时当你在数据库中创建的字段与Django模型有点不同时,它会导致问题。

例如

  • 在数据库中,将设置CREATE_TIME场像这个日期(6)NOT NULL默认CURRENT_TIMESTAMP上更新CURRENT_TIMESTAMP
  • 在Django的模型,可以设置CREATE_TIME = models.DateTimeField()在django模型

您的项目会工作,但您不会注意到当您更新记录时会有问题,但create_time也会被更新。这是很难找到的bug和维护project.Besides,如果使用泊坞窗部署你的项目,在搬运工文件,你可以只使用

python manage.py makemigrations 
python manage.py migrate 

,以确保每个数据库都会有相同的数据库schema.You不必一个接一个地替换数据库。

+0

我运行完全相同的命令,如上所示,由你。此外,它还显示我在控制台窗口中添加的新模块。但是,当我打开管理网站时,我没有看到新增加的模块。我在这里错过了什么吗?我可以为您提供我执行的命令的日志跟踪。 – YuDroid

+0

我运行的命令是:1.'python manage.py makemigrations splash'。输出:''splash'迁移: 0001_initial.py: - 创建模型Splash' – YuDroid

+0

2.'python manage.py migrate splash'。输出:'要执行的操作: 应用所有迁移:splash 正在运行迁移: 没有适用的迁移.' – YuDroid

相关问题