orator
orator copied to clipboard
Upgrading to mysql 8.0.19 breaks migrations
Migrations worked fine on 8.0.17. I upgraded to 8.0.19 to support Catalina and now migrations no longer work.
pymysql==0.9.3 orator==0.9.9
orator migrate -c config/database.py -f -vvv
[KeyError]
'int unsigned'
Exception trace:
/Users/gthomas1/.pyenv/versions/3.7.4/envs/autotb/lib/python3.7/site-packages/cleo/application.py in run() at line 94
status_code = self.do_run(input_, output_)
/Users/gthomas1/.pyenv/versions/3.7.4/envs/autotb/lib/python3.7/site-packages/cleo/application.py in do_run() at line 197
status_code = command.run(input_, output_)
/Users/gthomas1/.pyenv/versions/3.7.4/envs/autotb/lib/python3.7/site-packages/cleo/commands/command.py in run() at line 98
return super(Command, self).run(i, o)
/Users/gthomas1/.pyenv/versions/3.7.4/envs/autotb/lib/python3.7/site-packages/cleo/commands/base_command.py in run() at line 146
status_code = self.execute(input_, output_)
/Users/gthomas1/.pyenv/versions/3.7.4/envs/autotb/lib/python3.7/site-packages/orator/commands/command.py in execute() at line 39
return self.handle()
/Users/gthomas1/.pyenv/versions/3.7.4/envs/autotb/lib/python3.7/site-packages/orator/commands/migrations/migrate_command.py in handle() at line 41
migrator.run(path, pretend)
/Users/gthomas1/.pyenv/versions/3.7.4/envs/autotb/lib/python3.7/site-packages/orator/migrations/migrator.py in run() at line 51
self.run_migration_list(path, migrations, pretend)
/Users/gthomas1/.pyenv/versions/3.7.4/envs/autotb/lib/python3.7/site-packages/orator/migrations/migrator.py in run_migration_list() at line 69
self._run_up(path, f, batch, pretend)
/Users/gthomas1/.pyenv/versions/3.7.4/envs/autotb/lib/python3.7/site-packages/orator/migrations/migrator.py in _run_up() at line 88
migration.up()
/Users/gthomas1/intuit_repos/auto-threat-briefing/source/migrations/2018_10_24_170702_make_columns_nullable.py in up() at line 13
table.string('desirable').nullable().change()
/Users/gthomas1/.pyenv/versions/3.7.4/lib/python3.7/contextlib.py in __exit__() at line 119
next(self.gen)
/Users/gthomas1/.pyenv/versions/3.7.4/envs/autotb/lib/python3.7/site-packages/orator/schema/builder.py in table() at line 76
self._build(blueprint)
/Users/gthomas1/.pyenv/versions/3.7.4/envs/autotb/lib/python3.7/site-packages/orator/schema/builder.py in _build() at line 146
blueprint.build(self._connection, self._grammar)
/Users/gthomas1/.pyenv/versions/3.7.4/envs/autotb/lib/python3.7/site-packages/orator/schema/blueprint.py in build() at line 29
for statement in self.to_sql(connection, grammar):
/Users/gthomas1/.pyenv/versions/3.7.4/envs/autotb/lib/python3.7/site-packages/orator/schema/blueprint.py in to_sql() at line 52
sql = getattr(grammar, method)(self, command, connection)
/Users/gthomas1/.pyenv/versions/3.7.4/envs/autotb/lib/python3.7/site-packages/orator/schema/grammars/grammar.py in compile_change() at line 225
table_diff = self._get_changed_diff(blueprint, schema)
/Users/gthomas1/.pyenv/versions/3.7.4/envs/autotb/lib/python3.7/site-packages/orator/schema/grammars/grammar.py in _get_changed_diff() at line 250
self.get_table_prefix() + blueprint.get_table()
/Users/gthomas1/.pyenv/versions/3.7.4/envs/autotb/lib/python3.7/site-packages/orator/dbal/schema_manager.py in list_table_details() at line 49
columns = self.list_table_columns(table_name)
/Users/gthomas1/.pyenv/versions/3.7.4/envs/autotb/lib/python3.7/site-packages/orator/dbal/schema_manager.py in list_table_columns() at line 32
return self._get_portable_table_columns_list(table, table_columns)
/Users/gthomas1/.pyenv/versions/3.7.4/envs/autotb/lib/python3.7/site-packages/orator/dbal/schema_manager.py in _get_portable_table_columns_list() at line 65
column = self._get_portable_table_column_definition(table_column)
/Users/gthomas1/.pyenv/versions/3.7.4/envs/autotb/lib/python3.7/site-packages/orator/dbal/mysql_schema_manager.py in _get_portable_table_column_definition() at line 35
type = self._platform.get_type_mapping(db_type)
/Users/gthomas1/.pyenv/versions/3.7.4/envs/autotb/lib/python3.7/site-packages/orator/dbal/platforms/platform.py in get_type_mapping() at line 385
return self.INTERNAL_TYPE_MAPPING[db_type]
Update:
Adding "int unsigned": "integer",
to
https://github.com/sdispater/orator/blob/0.9/orator/dbal/platforms/mysql57_platform.py
seems to have fixed my problem.
Dunno what the devs want to do with this information lol.
Update:
Adding
"int unsigned": "integer",
to
https://github.com/sdispater/orator/blob/0.9/orator/dbal/platforms/mysql57_platform.py
seems to have fixed my problem.
Dunno what the devs want to do with this information lol.
Hello. After adding this line, do you meet any other problems with MySQL 8.0?