-
Notifications
You must be signed in to change notification settings - Fork 892
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PostgreSQL identity column insert issue 'identity column defined as GENERATED ALWAYS' #2193
Comments
Hi @captain-redbeard , so you are proposing to change default definition for identity columns to use GENERATED BY DEFAULT instead of GENERATED ALWAYS? You can pass 'generated' option to addColumn to use the definition you want. |
Thanks @ajibarra, that's correct, I am proposing changing the default definition for identity columns to use Alternatively or additionally the insert statement could be updated to include the If you create a migration file without manually specifying the primary key and additional |
@captain-redbeard Ok it makes sense...do you think you can create a PR since you have already identified the changes required? |
@ajibarra have you had a chance to review the PR? |
Hi, just checked it because I am not notified when a PR is created unless I'm mentioned. It looks good 👍 so we just need to wait for a maintainer to review and merge it. Thanks for your contribution! |
Issue
The following error is returned when seeding a Postgres database where the seeds have values in the identity column.
Versions
Phinx version: 0.13.4
Database: PostgreSQL 14.7
Cause
The reason this error is returned is because the table was created with the identity column having
GENERATED ALWAYS
through the migration which means that no writes are allowed to this column. Source: https://www.postgresql.org/docs/15/sql-createtable.htmlProposed Solution
Update Create Table
Create the identity column with
GENERATED BY DEFAULT
, this allows the user specified value to take precedence. Source: https://www.postgresql.org/docs/15/sql-createtable.htmlImpacted code:
Update Insert
To maintain maximum support the INSERT command could be updated to include
OVERRIDING SYSTEM VALUE
.Impacted code:
Example insert statement:
The text was updated successfully, but these errors were encountered: