【发布时间】:2012-12-24 05:10:32
【问题描述】:
当我必须运行数据库迁移脚本时,我往往会产生很大程度的偏执,并且不会像dbcli < migration.sql 那样一次性运行所有脚本。相反,我更喜欢一次运行一个命令。到目前为止,我一直在使用痛苦的复制/粘贴。
必须有一个可以做这种事情的工具,但我很难找到一个使用 Google、Wikpedia 或 StackOverflow(close 但no cigar)的工具。
这绝对是I could write myself,但它只是必须已经存在,不是吗?
这确实需要是可以从命令行运行的东西,具有一点点交互性(比如显示将要执行的语句,让你按例如 ENTER 来执行它,然后显示输出(如果有)是任何)因为服务器通常没有任何可用的 GUI。
我的特定数据库目标是 MySQL,但这种工具不需要特定于数据库。
更新
与此同时,我正在用 Java 编写一个实用程序,它可以满足我的需求。
【问题讨论】:
-
单独的语句是否可靠地用
;分隔? -
如果你是 sa,Sql Server Management Studio 有调试功能,如果你 google “mysql debug”,那里有很多程序
-
@mellamokb 老实说,我可以编写脚本以符合任何具有此类要求的工具。如果我自己写,我只会查找以“;”结尾的行,呈现语句,其中一个选项可能是“查找语句的其余部分”,它将继续为手头的语句收集输入.
-
".. 这样的工具不需要特定于 db" 实际上确实有这样的需求。在脚本级别,SQL 是非常特定于执行的,以至于仅仅弄清楚一个语句在哪里结束而另一个语句在哪里开始可能会出现问题。