yesodweb / yesodweb/persistent

In persistent-postgresql defining the sqltype of a field as "timestamp without time zone" causes remigrations

Open
#514 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Postgres
Dominant language
Haskell
Stars
486
Forks
306
PR merge metrics
No merged PRs in 30d

Description

When using persistent with PostgreSQL and having the following definition

createdAt UTCTime "sqltype=timestamp without time zone" default=now()

causes a

Migrating: ALTER TABLE "memberships" ALTER COLUMN "created_at" TYPE timestamp without time zone

every time the migrations are run. The type of the field in the DB is set correctly the first time, I would expect it not to issue an ALTER statement every time.

Is this a (quoting?) problem with my field definition or is persistent not getting the correct column type when calculating the necessary migrations?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the persistent-postgresql migration with a UTCTime field using sqltype=timestamp without time zone and default=now(). Trace how the existing database column type is read and compared with the declared type; done means the first migration creates the correct type and later migrations no longer emit the ALTER statement.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell, postgresql
Domain
databases
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.