现有PostgreSQL数据库上的Yesod迁移:ALTER与DROP

时间:2018-03-23 20:30:18

标签: postgresql haskell yesod

几个月后,我正在更新使用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?这是一个问题,因为它需要人工干预,并可能导致数据丢失。

0 个答案:

没有答案