首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL中的数据库模式迁移

MySQL中的数据库模式迁移
EN

Database Administration用户
提问于 2017-12-04 14:56:01
回答 1查看 720关注 0票数 1

我想知道安排db模式迁移脚本/脚本的正确方法是什么。

我的当前脚本是一个由{version}.cs文件组成的.cs代码,我正在逐个递增地运行这些文件。

  1. 是否建议将模式迁移脚本放在C#代码中,还是应该始终将其保留为纯sql文件?
  2. 在使用Alter table时,我需要添加一个条件,并检查Alter是否已经完成。因此,如果创建一个SQL脚本,我应该添加类似于IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'db_name' AND TABLE_NAME='table' AND column_name='col')的内容。看上去有很多代码,这是要走的路吗?
  3. 其中一个人建议使用Stored-procedure并在其中编写模式迁移脚本,以利用Stored-procedure的优势,您对这种方法有什么看法?
EN

回答 1

Database Administration用户

发布于 2017-12-04 23:34:10

  1. 显然没有规则,但保持一致可能是个好主意。这也是一个问题,这些模式更改是否将由可能不太擅长运行SQL脚本的人执行,例如,如果数据库及其应用程序是您分发给其他人的产品。
  2. 虽然MariaDB支持像ALTER TABLE my_table DROP COLUMN IF EXISTS col_name;这样的语句(参见这里),但MySQL没有这样的语句。您可以创建一个存储过程来执行此操作,也许类似于
  3. 存储过程对于许多任务是很好的,但是这听起来比它的价值更大。我不会完全拒绝这个想法,因为这完全取决于您的具体用例。在迁移大表时,您可能需要使用Percona中的pt-在线-模式更改这样的工具。
票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/192342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档