这里只是一些指示。 我正在对网站进行相当广泛的修改,包括MySQL数据库。
我的计划是在我的开发服务器上执行所有操作,导出数据库的新MySQL结构并将其导入客户端服务器。
基本上我需要知道,执行仅导入的结构不会覆盖/删除现有数据。我没有更改数据类型或字段长度。
答案 0 :(得分:1)
根据我的经验,当您导出数据库时(例如通过phpMyAdmin),创建的部分SQL脚本包含“DROP TABLE IF EXISTS'table_name';”在做“CREATE TABLE'table_name'...;”之前建立新表。
我的猜测是不你想做什么!当然使用开发系统来改变结构以使一切正确,但是然后四处寻找数据库同步例程,在那里你可以提供旧结构,新结构,软件将创建适当的“ALTER TABLE'table_name' ......“;用于进行所需更改的脚本。
然后,您应该在实时数据库上执行它们之前检查这些更改文件,当然 BACKUP 实时数据库,并确保您能够完全从在开始任何改动之前进行备份!
答案 1 :(得分:0)
我必须经常这样做,而且总是这样:
在此过程中,您将学习更多关于SQL DDL / DML的知识,而不是您曾经想过的。 (对于一个项目,我们从自然键切换到50多个表的UUID键,我最终编写程序来生成所有DDL / DML。)
祝你好运,并经常备份。
答案 2 :(得分:0)
我建议为您在开发服务器上执行的每个更改准备一个sql脚本,这样您就可以在开发时重现它。您不应该达到需要计算数据库结构之间差异的程度
这就是我的工作方式,所有更改都反映在sql脚本中,如果需要,我可以重建运行所有这些文件的数据库的历史记录。
在“staging”mysql服务器上测试最终版本。在另一台机器上制作生产服务器的副本并测试您的脚本以确保一切正常。
当然,初步数据库备份是必须的。