Skip to content

Sync dropping TEXT column #3352

@Ionaru

Description

@Ionaru

Issue type:

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

Database system/driver:

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

TypeORM version:

[x] latest -> 0.2.10
[ ] @next
[ ] 0.x.x (or put your version here)

Steps to reproduce or a small repository showing the problem:
A TypeORM synchonization will drop and recreate columns with type TEXT, destroying all data that was in those columns.

Gist to reproduce behaviour:
https://gist.github.com/Ionaru/5ac6f41759dc72230c266bc8ee1bf593

Running the script above once will result in the following SQL in all subsequent runs.

START TRANSACTION
SELECT DATABASE() AS `db_name`
SELECT * FROM `INFORMATION_SCHEMA`.`TABLES` WHERE (`TABLE_SCHEMA` = 'web_text_test' AND `TABLE_NAME` = 'bar')
SELECT * FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE (`TABLE_SCHEMA` = 'web_text_test' AND `TABLE_NAME` = 'bar')
SELECT * FROM `INFORMATION_SCHEMA`.`KEY_COLUMN_USAGE` WHERE `CONSTRAINT_NAME` = 'PRIMARY' AND ((`TABLE_SCHEMA` = 'web_text_test' AND `TABLE_NAME` = 'bar'))
SELECT `SCHEMA_NAME`, `DEFAULT_CHARACTER_SET_NAME` as `CHARSET`, `DEFAULT_COLLATION_NAME` AS `COLLATION` FROM `INFORMATION_SCHEMA`.`SCHEMATA`
SELECT `s`.* FROM `INFORMATION_SCHEMA`.`STATISTICS` `s` LEFT JOIN `INFORMATION_SCHEMA`.`REFERENTIAL_CONSTRAINTS` `rc` ON `s`.`INDEX_NAME` = `rc`.`CONSTRAINT_NAME` WHERE ((`s`.`TABLE_SCHEMA` = 'web_text_test' AND `s`.`TABLE_NAME` = 'bar')) AND `s`.`INDEX_NAME` != 'PRIMARY' AND `rc`.`CONSTRAINT_NAME` IS NULL
SELECT `kcu`.`TABLE_SCHEMA`, `kcu`.`TABLE_NAME`, `kcu`.`CONSTRAINT_NAME`, `kcu`.`COLUMN_NAME`, `kcu`.`REFERENCED_TABLE_SCHEMA`, `kcu`.`REFERENCED_TABLE_NAME`, `kcu`.`REFERENCED_COLUMN_NAME`, `rc`.`DELETE_RULE` `ON_DELETE`, `rc`.`UPDATE_RULE` `ON_UPDATE` FROM `INFORMATION_SCHEMA`.`KEY_COLUMN_USAGE` `kcu` INNER JOIN `INFORMATION_SCHEMA`.`REFERENTIAL_CONSTRAINTS` `rc` ON `rc`.`constraint_name` = `kcu`.`constraint_name` WHERE (`kcu`.`TABLE_SCHEMA` = 'web_text_test' AND `kcu`.`TABLE_NAME` = 'bar')
ALTER TABLE `bar` DROP COLUMN `someText`
ALTER TABLE `bar` ADD `someText` text NOT NULL
COMMIT

Version information:

  • Node 10.15.0
  • MySQL 5.7.20
"dependencies": {
  "mysql": "^2.16.0",
  "reflect-metadata": "^0.1.12",
  "ts-node": "^7.0.1",
  "typeorm": "^0.2.10",
  "typescript": "^3.2.2"
}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions