尝试通过部署后脚本添加列(更改表)并尝试将数据添加到新创建的列中抛出错误

Posted

技术标签:

【中文标题】尝试通过部署后脚本添加列(更改表)并尝试将数据添加到新创建的列中抛出错误【英文标题】:Trying to add a column (alter a table) through postdeployment scripts and trying to add data into the newly created column throwing error 【发布时间】:2015-04-13 22:19:56 【问题描述】:

我们使用部署后脚本来维护表中数据的历史记录。我正在尝试通过部署后脚本向现有表中添加一个新列。我已经编写了一个部署后脚本来添加新列和一个部署后脚本来将数据添加到新插入的列中。我正在尝试发布我的数据库,然后我可以在添加数据之前看到我的 alter table 脚本,但它会抛出一个错误'Invalid column name 'NewlyAddedColumn'' 我的问题可以使用部署后脚本更改架构吗?在部署后更改表后,我尝试使用 Commit 命令,但仍然遇到相同的错误消息。我正在运行部署后脚本以添加新列,然后再访问它以插入数据。有人可以帮我解决这个问题吗?

【问题讨论】:

【参考方案1】:

是的,你可以。右键单击部署后脚本,转到属性并设置 Build = none。但是为什么要在 post 脚本中添加列呢?为什么不想将其添加到项目中?

【讨论】:

我看到它已经被选为无。我们希望进行版本控制,以便我们了解在哪些版本中进行了哪些更改。部署后脚本是在我们将更改部署到数据库时添加的,因为它们是在它们出现的版本中创建的。

以上是关于尝试通过部署后脚本添加列(更改表)并尝试将数据添加到新创建的列中抛出错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 sqitch 生成更改表脚本

在解锁 oracle 上更改表约束

如何获取脚本将2个变量的总和添加到表格中的第3列

如何使用 Dbcontext 添加条目

向现有列添加标识

用 sqitch 恢复特定的变化?