C# 我可以不逐行验证mysql模式吗

C# 我可以不逐行验证mysql模式吗,c#,mysql,C#,Mysql,我有一个使用本地数据库的程序。用户有不同版本的程序,而程序又有更新数据库的命令。现在我有一大块代码,看起来像: try { using (var cmd = new MySqlCommand("ALTER TABLE `SomeTable` ADD COLUMN `SomeColumn` double NULL ;", con)) { cmd.CommandType = CommandType.Text;

我有一个使用本地数据库的程序。用户有不同版本的程序,而程序又有更新数据库的命令。现在我有一大块代码,看起来像:

try
{
  using (var cmd = new MySqlCommand("ALTER TABLE `SomeTable` ADD COLUMN `SomeColumn` double NULL  ;", con))
                {
                    cmd.CommandType = CommandType.Text;
                    cmd.ExecuteNonQuery();
                } 
}
我有成百上千的方法可以添加或删除列、添加表、创建索引等等。有没有更有效的方法来做到这一点,比如一次验证整个模式,还是我一直在维护它?
我确实打算将其更改为字符串数组,然后只运行数组中的所有字符串,但我不知道是否有更好的方法

您可以从数据库
信息\u schema
一次查询数据库中的整个架构。因此,您可以通过一个查询验证所有列设置。您可以分析结果并检查需要哪些更新。(数据库
information\u schema
特定于MySQL):

dbversion
中获取最新条目:

SELECT * FROM `dbversion` ORDER BY `date` DESC LIMIT  1;
CREATE TABLE `dbversion` (
  `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `version` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

ALTER TABLE `dbversion`
  ADD PRIMARY KEY (`date`,`version`),
  ADD KEY `date` (`date`);
SELECT * FROM `dbversion` ORDER BY `date` DESC LIMIT  1;