2015-04-19 3 views
8

Я пытаюсь развернуть приложение Django (1.8) в Heroku, runtime Python 3.4.2. Приложение работает успешно (за исключением того факта, что таблицы не создаются), но при попытке запустить SyncDB я получаю следующее сообщение об ошибке:Ошибка переноса Django в heroku

Running `python manage.py syncdb` attached to terminal... up, run.5851 
/app/.heroku/python/lib/python3.4/site-packages/django/core/management  
/commands/syncdb.py:24: RemovedInDjango19Warning: The syncdb command 
will be removed in Django 1.9 
warnings.warn("The syncdb command will be removed in Django 1.9", RemovedInDjango19Warning) 

Traceback (most recent call last): 
File "/app/.heroku/python/lib/python3.4/site-packages/django/db/migrations/loader.py", line 157, in check_key 
return list(self.graph.root_nodes(key[0]))[0] 
IndexError: list index out of range 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
File "manage.py", line 10, in <module> 
execute_from_command_line(sys.argv) 
File "/app/.heroku/python/lib/python3.4/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line 
utility.execute() 
File "/app/.heroku/python/lib/python3.4/site-packages/django /core/management/__init__.py", line 330, in execute 
self.fetch_command(subcommand).run_from_argv(self.argv) 
File "/app/.heroku/python/lib/python3.4/site-packages/django/core/management/base.py", line 390, in run_from_argv 
self.execute(*args, **cmd_options) 
File "/app/.heroku/python/lib/python3.4/site-packages/django/core/management/base.py", line 441, in execute 
output = self.handle(*args, **options) 
File "/app/.heroku/python/lib/python3.4/site-packages/django/core/management/commands/syncdb.py", line 25, in handle 
call_command("migrate", **options) 
File "/app/.heroku/python/lib/python3.4/site-packages/django/core/management/__init__.py", line 120, in call_command 
return command.execute(*args, **defaults) 
File "/app/.heroku/python/lib/python3.4/site-packages/django/core/management/base.py", line 441, in execute 
output = self.handle(*args, **options) 
File "/app/.heroku/python/lib/python3.4/site-packages/django/core/management/commands/migrate.py", line 93, in handle 
executor = MigrationExecutor(connection, self.migration_progress_callback) 
File "/app/.heroku/python/lib/python3.4/site-packages/django/db/migrations/executor.py", line 19, in __init__ 
self.loader = MigrationLoader(self.connection) 
File "/app/.heroku/python/lib/python3.4/site-packages/django/db/migrations/loader.py", line 47, in __init__ 
self.build_graph() 
File "/app/.heroku/python/lib/python3.4/site-packages/django/db/migrations/loader.py", line 287, in build_graph 
parent = self.check_key(parent, key[0]) 
File "/app/.heroku/python/lib/python3.4/site-packages/django/db/migrations/loader.py", line 164, in check_key 
raise ValueError("Dependency on app with no migrations: %s" % key[0]) 
ValueError: Dependency on app with no migrations: authentication 

Я использую SQLite.

+0

Является 'authentication' в установленных приложениях? – knbk

+0

Да, аутентификация находится в установленных приложениях. – user3706162

ответ

8

На вашей машине-разработчике создайте свои миграции с помощью python manage.py makemigrations. Затем, предполагая, что ваши папки миграции перенесены в герою, на heroku запустите python manage.py migrate вместо python manage.py syncdb. См. docs.

+0

У меня такая же проблема. Что мне делать с миграциями для приложений django, которые находятся в моем virtualenv? Может быть, это не моя проблема, я не уверен. – northben

+2

Попробуйте запустить heroku python manage.py migrate. Это приведет к миграции приложений на виртуальный сервер вашей производственной машины. – mcastle

2

Для меня я решил эту проблему с помощью той же команды, что мы используем в нашем локальном сервере с приставкой «Heroku перспективе» вот это ..

для например: -

python manage.py makemigrations 

он будет работать в наши местные, но и для Heroku, как это: -

heroku run python manage.py makemigrations 
2

я мастерил войти аппарат Heroku в Баш:

heroku run bash

, а затем сделать makemigrations:

heroku run python manage.py makemigrations 

Наконец,

heroku run python manage.py migrate 
Смежные вопросы