-
Notifications
You must be signed in to change notification settings - Fork 6
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
Newer Dolt Versions Break Plugin #175
Comments
It seems newer versions of Dolt break this plugin. @nniehoff Output above is with I pulled down said Gizmo-dolt container and rebuilt with the latest version of Dolt ( sandbox-nautobot on nn_nautobot_13 [!]
➜ INVOKE_SANDBOX_PYPROJECT_SRC=dolt INVOKE_SANDBOX_DATABASE=dolt invoke sandbox.migrate
1.2.11
Running docker-compose command "docker-compose --project-name sandbox --project-directory "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/" -f "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/local/docker-compose.redis.yml" -f "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/local/docker-compose.base.yml" -f "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/local/docker-compose.dev.yml" -f "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/local/docker-compose.dolt.yml" ps --services --filter status=running"
1.2.11
Running docker-compose command "docker-compose --project-name sandbox --project-directory "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/" -f "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/local/docker-compose.redis.yml" -f "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/local/docker-compose.base.yml" -f "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/local/docker-compose.dev.yml" -f "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/local/docker-compose.dolt.yml" -f "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/local/docker-compose.dolt.yml" run --entrypoint 'nautobot-server migrate' nautobot"
[+] Running 2/0
⠿ Container sandbox-redis-1 Running 0.0s
⠿ Container sandbox-database-1 Running 0.0s
Operations to perform:
Apply all migrations: admin, auth, circuits, contenttypes, database, dcim, django_celery_beat, extras, ipam, nautobot_version_control, sessions, social_django, taggit, tenancy, users, virtualization
Running migrations:
Applying auth.0002_alter_permission_name_max_length...Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python3.7/site-packages/django/db/backends/mysql/base.py", line 73, in execute
return self.cursor.execute(query, args)
File "/usr/local/lib/python3.7/site-packages/MySQLdb/cursors.py", line 206, in execute
res = self._query(query)
File "/usr/local/lib/python3.7/site-packages/MySQLdb/cursors.py", line 319, in _query
db.query(q)
File "/usr/local/lib/python3.7/site-packages/MySQLdb/connections.py", line 259, in query
_mysql.connection.query(self, query)
MySQLdb._exceptions.OperationalError: (1105, 'unable to change type of column `name` as it is used by foreign keys')
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/bin/nautobot-server", line 8, in <module>
sys.exit(main())
File "/usr/local/lib/python3.7/site-packages/nautobot/core/cli.py", line 61, in main
initializer=_configure_settings, # Called after defaults
File "/usr/local/lib/python3.7/site-packages/nautobot/core/runner/runner.py", line 266, in run_app
management.execute_from_command_line([runner_name, command] + command_args)
File "/usr/local/lib/python3.7/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.7/site-packages/django/core/management/__init__.py", line 395, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.7/site-packages/django/core/management/base.py", line 330, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python3.7/site-packages/django/core/management/base.py", line 371, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python3.7/site-packages/django/core/management/base.py", line 85, in wrapped
res = handle_func(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/django/core/management/commands/migrate.py", line 245, in handle
fake_initial=fake_initial,
File "/usr/local/lib/python3.7/site-packages/django/db/migrations/executor.py", line 117, in migrate
state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
File "/usr/local/lib/python3.7/site-packages/django/db/migrations/executor.py", line 147, in _migrate_all_forwards
state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
File "/usr/local/lib/python3.7/site-packages/django/db/migrations/executor.py", line 227, in apply_migration
state = migration.apply(state, schema_editor)
File "/usr/local/lib/python3.7/site-packages/django/db/migrations/migration.py", line 124, in apply
operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
File "/usr/local/lib/python3.7/site-packages/django/db/migrations/operations/fields.py", line 236, in database_forwards
schema_editor.alter_field(from_model, from_field, to_field)
File "/usr/local/lib/python3.7/site-packages/django/db/backends/base/schema.py", line 572, in alter_field
old_db_params, new_db_params, strict)
File "/usr/local/lib/python3.7/site-packages/django/db/backends/base/schema.py", line 726, in _alter_field
params,
File "/usr/local/lib/python3.7/site-packages/django/db/backends/base/schema.py", line 142, in execute
cursor.execute(sql, params)
File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 98, in execute
return super().execute(sql, params)
File "/usr/local/lib/python3.7/site-packages/cacheops/transaction.py", line 93, in execute
result = self._no_monkey.execute(self, sql, params)
File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 66, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 75, in _execute_with_wrappers
return executor(sql, params, many, context)
File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python3.7/site-packages/django/db/utils.py", line 90, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python3.7/site-packages/django/db/backends/mysql/base.py", line 73, in execute
return self.cursor.execute(query, args)
File "/usr/local/lib/python3.7/site-packages/MySQLdb/cursors.py", line 206, in execute
res = self._query(query)
File "/usr/local/lib/python3.7/site-packages/MySQLdb/cursors.py", line 319, in _query
db.query(q)
File "/usr/local/lib/python3.7/site-packages/MySQLdb/connections.py", line 259, in query
_mysql.connection.query(self, query)
django.db.utils.OperationalError: (1105, 'unable to change type of column `name` as it is used by foreign keys')
sandbox-nautobot on nn_nautobot_13 [!]
➜ INVOKE_SANDBOX_PYPROJECT_SRC=dolt INVOKE_SANDBOX_DATABASE=dolt invoke sandbox.cli -c database
1.2.11
Running docker-compose command "docker-compose --project-name sandbox --project-directory "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/" -f "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/local/docker-compose.redis.yml" -f "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/local/docker-compose.base.yml" -f "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/local/docker-compose.dev.yml" -f "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/local/docker-compose.dolt.yml" exec database bash"
root@0af4a1f391d3:/var/lib/nautobot# do
do dolt domainname done
root@0af4a1f391d3:/var/lib/nautobot# dolt version
dolt version 0.39.0
root@0af4a1f391d3:/var/lib/nautobot# |
CEO of DoltHub here. This looks like we broke something in 0.39.0. There was a big prepared statement change in that release so I suspect that will be the cause. We will look at this first thing tomorrow PST tomorrow and provide an ETA for a fix as quick as we can. When we get a fix, we’ll make a patch release and update this issue. |
Thanks for the prompt response @timsehn! Trying to get a lot of things updated here and bumping into little bugs. I can try |
I tried again with |
Rebuilt a container running ➜ INVOKE_SANDBOX_PYPROJECT_SRC=dolt INVOKE_SANDBOX_DATABASE=dolt invoke sandbox.migrate
1.2.11
Running docker-compose command "docker-compose --project-name sandbox --project-directory "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/" -f "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/local/docker-compose.redis.yml" -f "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/local/docker-compose.base.yml" -f "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/local/docker-compose.dev.yml" -f "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/local/docker-compose.dolt.yml" ps --services --filter status=running"
1.2.11
Running docker-compose command "docker-compose --project-name sandbox --project-directory "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/" -f "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/local/docker-compose.redis.yml" -f "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/local/docker-compose.base.yml" -f "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/local/docker-compose.dev.yml" -f "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/local/docker-compose.dolt.yml" -f "/Users/bryanculver/Developer/repos/sandbox-nautobot/environments/local/docker-compose.dolt.yml" run --entrypoint 'nautobot-server migrate' nautobot"
[+] Running 4/4
⠿ Network sandbox_default Created 0.0s
⠿ Volume "sandbox_dolt_data" Created 0.0s
⠿ Container sandbox-database-1 Created 0.1s
⠿ Container sandbox-redis-1 Created 0.1s
[+] Running 2/2
⠿ Container sandbox-redis-1 Started 0.3s
⠿ Container sandbox-database-1 Started 0.4s
2022-04-22 15:03:17,018 WARNING Wrapping model clean methods for custom validators failed because the ContentType table was not available or populated. This is normal during the execution of the migration command for the first time. - nautobot.extras.apps - apps - /usr/local/lib/python3.7/site-packages/nautobot/extras/apps.py:38
2022-04-22 15:03:17,018 WARNING Wrapping model clean methods for custom validators failed because the ContentType table was not available or populated. This is normal during the execution of the migration command for the first time. - nautobot.extras.apps - apps - /usr/local/lib/python3.7/site-packages/nautobot/extras/apps.py:38
Operations to perform:
Apply all migrations: admin, auth, circuits, contenttypes, database, dcim, django_celery_beat, extras, ipam, nautobot_version_control, sessions, social_django, taggit, tenancy, users, virtualization
Running migrations:
Applying contenttypes.0001_initial... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0001_initial... OK
Applying auth.0002_alter_permission_name_max_length...Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python3.7/site-packages/django/db/backends/mysql/base.py", line 73, in execute
return self.cursor.execute(query, args)
File "/usr/local/lib/python3.7/site-packages/MySQLdb/cursors.py", line 206, in execute
res = self._query(query)
File "/usr/local/lib/python3.7/site-packages/MySQLdb/cursors.py", line 319, in _query
db.query(q)
File "/usr/local/lib/python3.7/site-packages/MySQLdb/connections.py", line 259, in query
_mysql.connection.query(self, query)
MySQLdb._exceptions.OperationalError: (1105, 'unable to change type of column `name` as it is used by foreign keys')
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/bin/nautobot-server", line 8, in <module>
sys.exit(main())
File "/usr/local/lib/python3.7/site-packages/nautobot/core/cli.py", line 61, in main
initializer=_configure_settings, # Called after defaults
File "/usr/local/lib/python3.7/site-packages/nautobot/core/runner/runner.py", line 266, in run_app
management.execute_from_command_line([runner_name, command] + command_args)
File "/usr/local/lib/python3.7/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.7/site-packages/django/core/management/__init__.py", line 395, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.7/site-packages/django/core/management/base.py", line 330, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python3.7/site-packages/django/core/management/base.py", line 371, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python3.7/site-packages/django/core/management/base.py", line 85, in wrapped
res = handle_func(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/django/core/management/commands/migrate.py", line 245, in handle
fake_initial=fake_initial,
File "/usr/local/lib/python3.7/site-packages/django/db/migrations/executor.py", line 117, in migrate
state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
File "/usr/local/lib/python3.7/site-packages/django/db/migrations/executor.py", line 147, in _migrate_all_forwards
state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
File "/usr/local/lib/python3.7/site-packages/django/db/migrations/executor.py", line 227, in apply_migration
state = migration.apply(state, schema_editor)
File "/usr/local/lib/python3.7/site-packages/django/db/migrations/migration.py", line 124, in apply
operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
File "/usr/local/lib/python3.7/site-packages/django/db/migrations/operations/fields.py", line 236, in database_forwards
schema_editor.alter_field(from_model, from_field, to_field)
File "/usr/local/lib/python3.7/site-packages/django/db/backends/base/schema.py", line 572, in alter_field
old_db_params, new_db_params, strict)
File "/usr/local/lib/python3.7/site-packages/django/db/backends/base/schema.py", line 726, in _alter_field
params,
File "/usr/local/lib/python3.7/site-packages/django/db/backends/base/schema.py", line 142, in execute
cursor.execute(sql, params)
File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 98, in execute
return super().execute(sql, params)
File "/usr/local/lib/python3.7/site-packages/cacheops/transaction.py", line 93, in execute
result = self._no_monkey.execute(self, sql, params)
File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 66, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 75, in _execute_with_wrappers
return executor(sql, params, many, context)
File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python3.7/site-packages/django/db/utils.py", line 90, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python3.7/site-packages/django/db/backends/mysql/base.py", line 73, in execute
return self.cursor.execute(query, args)
File "/usr/local/lib/python3.7/site-packages/MySQLdb/cursors.py", line 206, in execute
res = self._query(query)
File "/usr/local/lib/python3.7/site-packages/MySQLdb/cursors.py", line 319, in _query
db.query(q)
File "/usr/local/lib/python3.7/site-packages/MySQLdb/connections.py", line 259, in query
_mysql.connection.query(self, query)
django.db.utils.OperationalError: (1105, 'unable to change type of column `name` as it is used by foreign keys')
|
https://github.com/dolthub/dolt/releases/tag/v0.39.1 This release should fix the above issues. Please test and let us know if something else breaks. Thanks for the report. |
Progressing further but new issue now:
Relevant trace from container:
|
Current table schema
|
We’ve got another release out, which should fix the above issue! |
Migrations are succeeding again with Dolt version |
Dolt version 0.37.3 breaks this plugin:
The text was updated successfully, but these errors were encountered: