几个月后,我正在更新使用Yesod + Persistent构建的现有服务+数据库,并遇到迁移问题。
在过去,我总是在部署期间进行以下迁移,这很好。
ALTER TABLE" collect_highway" ALTER COLUMN" admin_unit" TYPE varchar(8);
ALTER TABLE" collect_highway" ALTER COLUMN" date" SET DEFAULT Now(); []
但现在我突然收到以下内容
ALTER TABLE "collected_highway" ALTER COLUMN "admin_unit" TYPE varchar(8);
*** ALTER TABLE" gather_highway" DROP COLUMN" date&#34 ;;
对于应用程序的现有PostgreSQL数据库会发生这种情况,即使我删除了列的内容。
请注意,即使使用相同的远程数据库,也不会通过" stack exec yesod devel"在本地环境中发生。
这是有问题的模型。它已经有一段时间没有改变了。
CollectedHighway
highway Highway
userId Int64
highwayId Int64
adminUnit Text sqltype=varchar(8)
date UTCTime default=Now()
UniqueCH userId highway
yesod-bin版本:1.5.2.3
我知道为什么我突然得到DROP而不是ALTER?这是一个问题,因为它需要人工干预,并可能导致数据丢失。