2017-08-10 46 views
1

有关于这个特定的错误有很多stackoverflow问题,但我认为没有类似的情况,我有。我一直在关注djangogirls heroku部署教程,从settings.py的数据库设置中确保我已经做得正确。在Heroku Django部署:失败在createsuperuser:django.db.utils.OperationalError:没有这样的表:auth_user

我在应用程序中启动并运行了应用程序。尝试访问管理员,它仍然有auth_user的操作错误。因此,我认为我可能在移植过程中出错了。所以以下步骤我这样做:

1)蟒蛇manage.py makemigrations

2)Python的manage.py迁移

3)git的补充。 ,git的承诺-m “ - ” 混帐推Heroku的主

4)Heroku的执行python manage.py makemigrations

5)Heroku的执行python manage.py迁移

现在最后一步,这里的一切都失败了,说还有东西要迁徙。

6)Heroku的执行python manage.py createsuperuser

我做的步骤是,他们提出和被接受的建议,但它似乎无法在我的情况下工作。有任何想法吗?

git push heroku master

Counting objects: 6, done. 
Delta compression using up to 2 threads. 
Compressing objects: 100% (6/6), done. 
Writing objects: 100% (6/6), 584 bytes | 0 bytes/s, done. 
Total 6 (delta 5), reused 0 (delta 0) 
remote: Compressing source files... done. 
remote: Building source: 
remote: 
remote: -----> Python app detected 
remote: -----> Installing requirements with pip 
remote: 
remote: -----> $ python manage.py collectstatic --noinput 
remote:  61 static files copied to '/tmp/build_82c26be81e84293089f1ac30a26227e2/hope/staticfiles', 24 post-processed. 
remote: 
remote: -----> Discovering process types 
remote:  Procfile declares types -> web 
remote: 
remote: -----> Compressing... 
remote:  Done: 162.1M 
remote: -----> Launching... 
remote:  Released v23 
remote:  https://plexus-test.herokuapp.com/ deployed to Heroku 
remote: 
remote: Verifying deploy... done. 
To https://git.heroku.com/plexus-test.git 
    05985ed..ef721b3 master -> master 

heroku run python manage.py makemigrations

System check identified some issues: 

WARNINGS: 
?: (urls.W001) Your URL pattern '^$' uses include with a regex ending with a '$'. Remove the dollar from the regex to avoid problems including URLs. 
blog.Post.created_date: (fields.W161) Fixed default value provided. 
    HINT: It seems you set a fixed date/time/datetime value as default for this field. This may not be what you want. If you want to have the current date as default, use `django.utils.timezone.now` 
Migrations for 'blog': 
    blog/migrations/0004_auto_20170810_1400.py 
    - Alter field created_date on post 

heroku run python manage.py migrate

System check identified some issues: 

WARNINGS: 
?: (urls.W001) Your URL pattern '^$' uses include with a regex ending with a '$'. Remove the dollar from the regex to avoid problems including URLs. 
blog.Post.created_date: (fields.W161) Fixed default value provided. 
    HINT: It seems you set a fixed date/time/datetime value as default for this field. This may not be what you want. If you want to have the current date as default, use `django.utils.timezone.now` 
Operations to perform: 
    Apply all migrations: admin, auth, blog, contenttypes, sessions 
Running migrations: 
    Applying contenttypes.0001_initial... OK 
    Applying auth.0001_initial... OK 
    Applying admin.0001_initial... OK 
    Applying admin.0002_logentry_remove_auto_add... OK 
    Applying contenttypes.0002_remove_content_type_name... OK 
    Applying auth.0002_alter_permission_name_max_length... OK 
    Applying auth.0003_alter_user_email_max_length... OK 
    Applying auth.0004_alter_user_username_opts... OK 
    Applying auth.0005_alter_user_last_login_null... OK 
    Applying auth.0006_require_contenttypes_0002... OK 
    Applying auth.0007_alter_validators_add_error_messages... OK 
    Applying auth.0008_alter_user_username_max_length... OK 
    Applying blog.0001_initial... OK 
    Applying blog.0002_auto_20170808_1512... OK 
    Applying blog.0003_auto_20170810_1322... OK 
    Applying sessions.0001_initial... OK 

heroku logs

2017-08-11T06:49:26.623403+00:00 app[api]: Starting process with 
command `python manage.py migrate` by user 
2017-08-11T06:49:38.089108+00:00 heroku[run.8604]: Awaiting client 
2017-08-11T06:49:38.121068+00:00 heroku[run.8604]: Starting process with command `python manage.py migrate` 
2017-08-11T06:49:38.345055+00:00 heroku[run.8604]: State changed from starting to up 
2017-08-11T06:49:43.808801+00:00 heroku[run.8604]: Process exited with status 0 
2017-08-11T06:49:43.823668+00:00 heroku[run.8604]: State changed from up to complete 

heroku run python manage.py showmigrations

似乎是错在这里在这一点上了。 迁移说,这是申请,但showmigrations说否则

admin 
[ ] 0001_initial 
[ ] 0002_logentry_remove_auto_add 
auth 
[ ] 0001_initial 
[ ] 0002_alter_permission_name_max_length 
[ ] 0003_alter_user_email_max_length 
[ ] 0004_alter_user_username_opts 
[ ] 0005_alter_user_last_login_null 
[ ] 0006_require_contenttypes_0002 
[ ] 0007_alter_validators_add_error_messages 
[ ] 0008_alter_user_username_max_length 
blog 
[ ] 0001_initial 
[ ] 0002_remove_post_created_date 
contenttypes 
[ ] 0001_initial 
[ ] 0002_remove_content_type_name 
sessions 
[ ] 0001_initial 
test_app 
(no migrations) 

heroku run python manage.py createsuperuser

System check identified some issues: 

WARNINGS: 
?: (urls.W001) Your URL pattern '^$' uses include with a regex ending with a '$'. Remove the dollar from the regex to avoid problems including URLs. 
blog.Post.created_date: (fields.W161) Fixed default value provided. 
    HINT: It seems you set a fixed date/time/datetime value as default for this field. This may not be what you want. If you want to have the current date as default, use `django.utils.timezone.now` 

You have 16 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, blog, contenttypes, sessions. 
Run 'python manage.py migrate' to apply them. 

Traceback (most recent call last): 
    File "manage.py", line 22, in <module> 
    execute_from_command_line(sys.argv) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 363, in execute_from_command_line 
    utility.execute() 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 355, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py", line 283, in run_from_argv 
    self.execute(*args, **cmd_options) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 63, in execute 
    return super(Command, self).execute(*args, **options) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py", line 330, in execute 
    output = self.handle(*args, **options) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 96, in handle 
    default_username = get_default_username() 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/auth/management/__init__.py", line 148, in get_default_username 
    auth_app.User._default_manager.get(username=default_username) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/manager.py", line 85, in manager_method 
    return getattr(self.get_queryset(), name)(*args, **kwargs) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/query.py", line 374, in get 
    num = len(clone) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/query.py", line 232, in __len__ 
    self._fetch_all() 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/query.py", line 1118, in _fetch_all 
    self._result_cache = list(self._iterable_class(self)) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/query.py", line 53, in __iter__ 
    results = compiler.execute_sql(chunked_fetch=self.chunked_fetch) 
    File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 894, in execute_sql 
    raise original_exception 
django.db.utils.OperationalError: no such table: auth_user 

settings.py

""" 
Django settings for hope project. 

Generated by 'django-admin startproject' using Django 1.10.5. 

For more information on this file, see 
https://docs.djangoproject.com/en/1.10/topics/settings/ 

For the full list of settings and their values, see 
https://docs.djangoproject.com/en/1.10/ref/settings/ 
""" 

import os 
import dj_database_url 

# Build paths inside the project like this: os.path.join(BASE_DIR, ...) 
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 


# Quick-start development settings - unsuitable for production 
# See https://docs.djangoproject.com/en/1.10/howto/deployment/checklist/ 

# SECURITY WARNING: keep the secret key used in production secret! 
SECRET_KEY = '###' 

# SECURITY WARNING: don't run with debug turned on in production! 
DEBUG = False 

ALLOWED_HOSTS = [ 
    u'plexus-test.herokuapp.com', 
    u'127.0.0.1' 
] 


# Application definition 

INSTALLED_APPS = [ 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'test_app', 
    'blog' 
] 

MIDDLEWARE = [ 
    'django.middleware.security.SecurityMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.clickjacking.XFrameOptionsMiddleware', 
    'whitenoise.middleware.WhiteNoiseMiddleware', 
] 

ROOT_URLCONF = 'hope.urls' 

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [os.path.join(BASE_DIR, 'templates')] 
     , 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
      ], 
     }, 
    }, 
] 

WSGI_APPLICATION = 'hope.wsgi.application' 


# Database 
# https://docs.djangoproject.com/en/1.10/ref/settings/#databases 

DATABASES = {} 
DATABASES['default'] = dj_database_url.config() 

SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') 

try: 
    from .local_settings import * 
except ImportError: 
    pass 


# Password validation 
# https://docs.djangoproject.com/en/1.10/ref/settings/#auth-password-validators 

AUTH_PASSWORD_VALIDATORS = [ 
    { 
     'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 
    }, 
] 


# Internationalization 
# https://docs.djangoproject.com/en/1.10/topics/i18n/ 

LANGUAGE_CODE = 'en-us' 

TIME_ZONE = 'UTC' 

USE_I18N = True 

USE_L10N = True 

USE_TZ = True 


PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) 

# Static files (CSS, JavaScript, Images) 
# https://docs.djangoproject.com/en/1.9/howto/static-files/ 
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'staticfiles') 
STATIC_URL = '/static/' 

# Extra places for collectstatic to find static files. 
STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, 'static'), 
) 

STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage' 

编辑:我上的virtualenv运行。

回答

2

最后,我最终重新做了整个设置,并没有任何问题没有问题。无论如何,只要万一有人遇到同样的问题,这个问题最终会得到更好的回答。

1

看来你的Heroku错误陈述那里......

You have 16 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, blog, contenttypes, sessions. Run 'python manage.py migrate' to apply them.

我只想跑......

>>> python manage.py migrate 
+0

嗯是的就是这样。正如我上面所说,我做了相应的步骤......一次又一次地做错误状态的迁移,但每次我进入到createsuperuser步骤时,它将声明相同的错误 – Reiion

+0

,因此您的数据库表必须位于createsuperuser看起来你的表不存在哪个是问题,没有用户表就不能创建超级用户。 –

+0

迁移命令不应该自动创建表吗?它确实表示它“应用”了迁移。从admin,auth,contenttypes和session加上我的模型。我想知道这些警告是否会阻碍从迁移中创建表格。 – Reiion

相关问题