Skip to content
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

Renaming a column with current_timestamp(6) results in broken SQL #4658

Closed
dantman opened this issue Aug 28, 2019 · 1 comment
Closed

Renaming a column with current_timestamp(6) results in broken SQL #4658

dantman opened this issue Aug 28, 2019 · 1 comment

Comments

@dantman
Copy link

dantman commented Aug 28, 2019

Issue type:

[ ] question
[x] bug report
[ ] feature request
[ ] documentation issue

Database system/driver:

[ ] cordova
[ ] mongodb
[ ] mssql
[x] mysql / mariadb
[ ] oracle
[ ] postgres
[ ] cockroachdb
[ ] sqlite
[ ] sqljs
[ ] react-native
[ ] expo

TypeORM version:

[ ] latest
[ ] @next
[x] 0.2.17

Steps to reproduce or a small repository showing the problem:

I was renaming a createdAt column created by @CreateDateColumn() from created_at to createdAt using this migration.

await queryRunner.renameColumn('some_entity', 'created_at', 'createdAt');

This resulted in the following SQL query and error:

ALTER TABLE `some_entity` CHANGE `created_at` `createdAt` datetime(6) NOT NULL DEFAULT 'current_timestamp(6)'
QueryFailedError: ER_TRUNCATED_WRONG_VALUE: Incorrect datetime value: 'current_timestamp(6)' for column ``.``.`createdAt` at row 1

I think that TypeORM is reading the default value and using it when renaming the column, but not understanding that the current_timestamp(6) coming from the database is not a string but TypeORM is passing a string back to the database.

This happens no matter what form of renameColumn or changeColumn I use since renameColumn just defers to changeColumn and changeColumn decides whether to change or rename based on whether the TableColumn data you pass in is different.

@AlexMesser
Copy link
Collaborator

I've added a test and it looks like this issue is already fixed. Please reopen it if you face this error again.

AlexMesser added a commit that referenced this issue Apr 1, 2021
…ies during synchronization (#7517)

* fix #3991

* fix #3991

* improved test for #2737;
fixed remaining issues in #2737;

* fix #6412

* added test for #4281 and #4658

* fixed `NOW()` function usage in MySQL/MariaDB;
fixed precision in datetime functions for MySQL/MariaDB;
improved #3991 test for MySQL/MariaDB;

* added test for #2333

* added test for #7381

* added "remove" operation check in #4658 test

* fixed precision in datetime functions for PostgreSQl;
improved #3991 test for PostgreSQl;

* improved #3991 test for CockroachDB;

* improved #3991 test for Sqlite;

* improved #3991 test for Oracle and SQLServer;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants