の既存のテーブルにフィールドを追加する方法を永続:私はFaceDimensions
テーブルにzHeight
を追加する必要がハスケル以下の永続的なデータベース定義を指定されたSQLデータベース
share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|
Mount
name String
UniqueName name
desc String
deriving Show
FaceSlope
slope Double
mountId MountId
MountIdForFaceSlope mountId
deriving Show
FaceDimensions
zTop Double
zBtm Double
zHeight Double default=5.0
leftx Double
lefty Double
rightx Double
righty Double
mountId MountId
MountIdForFaceDimensions mountId
deriving Show
CurrentMount
mountId MountId
deriving Show
|]
。私はすでにdbにある既存の行のデフォルト値を与えました。
I runMigration migrateAll
次のエラーが発生します。
PersistMarshalError "フィールドzHeight:予想ダブルは、受信: PersistText \" z_heightの\ ""
をこの作業を取得するために、私は手動でのSQLiteデータベースにフィールドを追加する必要がありました。 永続性を使ってこれを直接行う方法はありますか?
デフォルト= 5.0ビットなしで動作しますか? – asg0451
このエラーは、通常、間違った値を持つ既存の列があることを意味します。あなたは 'SHOW CREATE TABLE face_dimensions;'の出力を投稿できますか? – ephrion
別の表にエラーを再現します。 –