[Migrations] SqlAlchemy DataError, 1171 : "All parts of a PRIMARY KEY must be NOT NULL"
Running a migration upgrade head with sample data (python manage.py db upgrade -x data=True head
) produces the following error:
C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\flask\exthook.py:71: ExtDeprecationWarning: Importing flask.ext.sqlalchemy is deprecated, use flask_sqlalchemy instead.
.format(x=modname), ExtDeprecationWarning
C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\flask\exthook.py:71: ExtDeprecationWarning: Importing flask.ext.httpauth is deprecated, use flask_httpauth instead.
.format(x=modname), ExtDeprecationWarning
C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\flask\exthook.py:71: ExtDeprecationWarning: Importing flask.ext.bcrypt is deprecated, use flask_bcrypt instead.
.format(x=modname), ExtDeprecationWarning
INFO [alembic.runtime.migration] Context impl MySQLImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
INFO [alembic.runtime.migration] Running upgrade -> f149c4d147d3, add core module tables
Traceback (most recent call last):
File "manage.py", line 38, in <module>
manager.run()
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\flask_script\__init__.py", line 412, in run
result = self.handle(sys.argv[0], sys.argv[1:])
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\flask_script\__init__.py", line 383, in handle
res = handle(*args, **config)
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\flask_script\commands.py", line 216, in __call__
return self.run(*args, **kwargs)
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\flask_migrate\__init__.py", line 239, in upgrade
command.upgrade(config, revision, sql=sql, tag=tag)
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\alembic\command.py", line 254, in upgrade
script.run_env()
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\alembic\script\base.py", line 427, in run_env
util.load_python_file(self.dir, 'env.py')
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\alembic\util\pyfiles.py", line 81, in load_python_file
module = load_module_py(module_id, path)
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\alembic\util\compat.py", line 141, in load_module_py
mod = imp.load_source(module_id, path, fp)
File "migrations\env.py", line 87, in <module>
run_migrations_online()
File "migrations\env.py", line 80, in run_migrations_online
context.run_migrations()
File "<string>", line 8, in run_migrations
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\alembic\runtime\environment.py", line 836, in run_migrations
self.get_context().run_migrations(**kw)
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\alembic\runtime\migration.py", line 330, in run_migrations
step.migration_fn(**kw)
File "C:\Users\CJ Cabero\Projects\flask-starter-kit\migrations\versions\f149c4d147d3_add_core_module_tables.py", line 24, in upgrade
schema_upgrades()
File "C:\Users\CJ Cabero\Projects\flask-starter-kit\migrations\versions\f149c4d147d3_add_core_module_tables.py", line 53, in schema_upgrades
autoincrement=True
File "<string>", line 8, in alter_column
File "<string>", line 3, in alter_column
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\alembic\operations\ops.py", line 1444, in alter_column
return operations.invoke(alt)
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\alembic\operations\base.py", line 319, in invoke
return fn(self, operation)
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\alembic\operations\toimpl.py", line 53, in alter_column
**operation.kw
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\alembic\ddl\mysql.py", line 68, in alter_column
else existing_autoincrement
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\alembic\ddl\impl.py", line 118, in _exec
return conn.execute(construct, *multiparams, **params)
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\sqlalchemy\engine\base.py", line 948, in execute
return meth(self, multiparams, params)
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\sqlalchemy\sql\ddl.py", line 68, in _execute_on_connection
return connection._execute_ddl(self, multiparams, params)
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\sqlalchemy\engine\base.py", line 1009, in _execute_ddl
compiled
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\sqlalchemy\engine\base.py", line 1200, in _execute_context
context)
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\sqlalchemy\engine\base.py", line 1413, in _handle_dbapi_exception
exc_info
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\sqlalchemy\util\compat.py", line 265, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\sqlalchemy\engine\base.py", line 1193, in _execute_context
context)
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\sqlalchemy\engine\default.py", line 509, in do_execute
cursor.execute(statement, parameters)
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\pymysql\cursors.py", line 167, in execute
result = self._query(query)
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\pymysql\cursors.py", line 323, in _query
conn.query(q)
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\pymysql\connections.py", line 836, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\pymysql\connections.py", line 1020, in _read_query_result
result.read()
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\pymysql\connections.py", line 1303, in read
first_packet = self.connection._read_packet()
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\pymysql\connections.py", line 982, in _read_packet
packet.check_error()
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\pymysql\connections.py", line 394, in check_error
err.raise_mysql_exception(self._data)
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\pymysql\err.py", line 120, in raise_mysql_exception
_check_mysql_exception(errinfo)
File "C:\Users\CJCABE~1\Projects\FLASK-~1\venv\lib\site-packages\pymysql\err.py", line 112, in _check_mysql_exception
raise errorclass(errno, errorvalue)
sqlalchemy.exc.DataError: (pymysql.err.DataError) (1171, u'All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead') [SQL: u'ALTER TABLE parties MODIFY id INTEGER NULL AUTO_INCREMENT'] (Background on this error at: http://sqlalche.me/e/9h9h)