mysql - Django unittest - Unable to create table -


i'm trying write simple test django application. fails every time when run ./manage.py test.

traceback (most recent call last): file "./manage.py", line 10, in <module> execute_from_command_line(sys.argv) file "/home/tyler/projects/django/env/local/lib/python2.7/site-package/django/core/management/__init__.py", line 338, in execute_from_command_line utility.execute() file "/home/tyler/projects/django/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 330, in execute self.fetch_command(subcommand).run_from_argv(self.argv) file "/home/tyler/projects/django/env/local/lib/python2.7/site-packages/django/core/management/commands/test.py", line 30, in run_from_argv super(command, self).run_from_argv(argv) file "/home/tyler/projects/django/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 390, in run_from_argv self.execute(*args, **cmd_options) file "/home/tyler/projects/django/env/local/lib/python2.7/site-packages/django/core/management/commands/test.py", line 74, in execute super(command, self).execute(*args, **options) file "/home/tyler/projects/django/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 441, in execute output = self.handle(*args, **options) file "/home/tyler/projects/django/env/local/lib/python2.7/site-packages/django/core/management/commands/test.py", line 90, in handle failures = test_runner.run_tests(test_labels) file "/home/tyler/projects/django/env/local/lib/python2.7/site-packages/django/test/runner.py", line 210, in run_tests old_config = self.setup_databases() file "/home/tyler/projects/django/env/local/lib/python2.7/site-packages/django/test/runner.py", line 166, in setup_databases **kwargs file "/home/tyler/projects/django/env/local/lib/python2.7/site-packages/django/test/runner.py", line 370, in setup_databases serialize=connection.settings_dict.get("test", {}).get("serialize", true), file "/home/tyler/projects/django/env/local/lib/python2.7/site-packages/django/db/backends/base/creation.py", line 368, in create_test_db test_flush=not keepdb, file "/home/tyler/projects/django/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 120, in call_command return command.execute(*args, **defaults) file "/home/tyler/projects/django/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 441, in execute output = self.handle(*args, **options) file "/home/tyler/projects/django/env/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 179, in handle created_models = self.sync_apps(connection, executor.loader.unmigrated_apps) file "/home/tyler/projects/django/env/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 317, in sync_apps cursor.execute(statement) file "/home/tyler/projects/django/env/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute return self.cursor.execute(sql, params) file "/home/tyler/projects/django/env/local/lib/python2.7/site-packages/django/db/utils.py", line 97, in __exit__ six.reraise(dj_exc_type, dj_exc_value, traceback) file "/home/tyler/projects/django/env/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 62, in execute return self.cursor.execute(sql) file "/home/tyler/projects/django/env/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 124, in execute return self.cursor.execute(query, args) file "/home/tyler/projects/django/env/local/lib/python2.7/site-packages/mysqldb/cursors.py", line 205, in execute self.errorhandler(self, exc, value) file "/home/tyler/projects/django/env/local/lib/python2.7/site-packages/mysqldb/connections.py", line 36, in defaulterrorhandler raise errorclass, errorvalue django.db.utils.operationalerror: (1005, "can't create table 'test_products.#sql-4b8_e9' (errno: 150)") 

i thought problem mysql engine, checked in mysql workbench innodb engine. may had same problem.

i had exact same problem, when running manage.py test on django app ported django 1.5 django 1.8.

./manage.py test creating test database alias 'default'... traceback (most recent call last):   file "./manage.py", line 10, in <module>  ...    file "/usr/local/lib/python2.7/dist-packages/mysqldb/connections.py", line 36, in defaulterrorhandler     raise errorclass, errorvalue django.db.utils.operationalerror: (1005, "can't create table 'test_xxxx.#sql-6c1_6c' (errno: 150)") 

just sergii v. notes, solution has migrations. in case there no migrations file @ (that feature didn't exist in django 1.5).

so solution running

./manage.py makemigrations <appname> 

after that, tests work fine:

./manage.py test creating test database alias 'default'... . ---------------------------------------------------------------------- ran 1 test in 0.014s  ok destroying test database alias 'default'... 

Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -