Проблема в том, что ваш ручной ALTER TABLE
оператор не добавляет значение по умолчанию и оставляет столбец обнуляемым;server_default
на объекте Column
не имеет никакого эффекта.Если вы хотите использовать значение по умолчанию, добавьте его:
engine.execute('ALTER TABLE %s ADD COLUMN %s %s DEFAULT 0' % (table_name, column_name, column_type))
Я бы настоятельно рекомендовал использовать alembic для миграции баз данных.