python - 使用 django 在 heroku 上创建超级用户时出错
问题描述
我在 heroku 上创建了一个名为学习日志的应用程序(它是 python 速成课程中的一个项目)。当我尝试创建一个超级用户时,它向我显示一个错误。
我首先运行(在终端中):
heroku run bash
接着 :
python manage.py createsuperuser
主要错误如下:
You have 20 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, learning_logs, sessions.
Run 'python manage.py migrate' to apply them.
Traceback (most recent call last):
File "/app/.heroku/python/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "/app/.heroku/python/lib/python3.7/site-packages/django/db/backends/sqlite3/base.py", line 383, in execute
return Database.Cursor.execute(self, query, params)
sqlite3.OperationalError: no such table: auth_user
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "manage.py", line 21, in <module>
main()
File "manage.py", line 17, in main
execute_from_command_line(sys.argv)
我已经多次应用迁移,但我仍然收到未应用的迁移错误。
其余的错误是这样的:
File "/app/.heroku/python/lib/python3.7/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
utility.execute()
File "/app/.heroku/python/lib/python3.7/site-packages/django/core/management/__init__.py", line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/app/.heroku/python/lib/python3.7/site-packages/django/core/management/base.py", line 323, in run_from_argv
self.execute(*args, **cmd_options)
File "/app/.heroku/python/lib/python3.7/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 61, in execute
return super().execute(*args, **options)
File "/app/.heroku/python/lib/python3.7/site-packages/django/core/management/base.py", line 364, in execute
output = self.handle(*args, **options)
File "/app/.heroku/python/lib/python3.7/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 82, in handle
default_username = get_default_username()
File "/app/.heroku/python/lib/python3.7/site-packages/django/contrib/auth/management/__init__.py", line 140, in get_default_username
auth_app.User._default_manager.get(username=default_username)
File "/app/.heroku/python/lib/python3.7/site-packages/django/db/models/manager.py", line 82, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/app/.heroku/python/lib/python3.7/site-packages/django/db/models/query.py", line 402, in get
num = len(clone)
File "/app/.heroku/python/lib/python3.7/site-packages/django/db/models/query.py", line 256, in __len__
self._fetch_all()
File "/app/.heroku/python/lib/python3.7/site-packages/django/db/models/query.py", line 1242, in _fetch_all
self._result_cache = list(self._iterable_class(self))
File "/app/.heroku/python/lib/python3.7/site-packages/django/db/models/query.py", line 55, in __iter__
results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
File "/app/.heroku/python/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 1100, in execute_sql
cursor.execute(sql, params)
File "/app/.heroku/python/lib/python3.7/site-packages/django/db/backends/utils.py", line 99, in execute
return super().execute(sql, params)
File "/app/.heroku/python/lib/python3.7/site-packages/django/db/backends/utils.py", line 67, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/app/.heroku/python/lib/python3.7/site-packages/django/db/backends/utils.py", line 76, in _execute_with_wrappers
return executor(sql, params, many, context)
File "/app/.heroku/python/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "/app/.heroku/python/lib/python3.7/site-packages/django/db/utils.py", line 89, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
执行命令时也出现错误:
git push heroku master
当我运行它时,我得到:
Enumerating objects: 18, done.
Counting objects: 100% (18/18), done.
Delta compression using up to 8 threads
Compressing objects: 100% (12/12), done.
Writing objects: 100% (12/12), 1022 bytes | 511.00 KiB/s, done.
Total 12 (delta 10), 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: Traceback (most recent call last):
remote: File "/app/.heroku/python/lib/python3.7/site-packages/django/db/backends/postgresql/base.py", line 20, in <module>
remote: import psycopg2 as Database
remote: ModuleNotFoundError: No module named 'psycopg2'
remote: During handling of the above exception, another exception occurred:
remote: Traceback (most recent call last):
remote: File "manage.py", line 21, in <module>
remote: main()
remote: File "manage.py", line 17, in main
remote: execute_from_command_line(sys.argv)
remote: File "/app/.heroku/python/lib/python3.7/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
remote: utility.execute()
remote: File "/app/.heroku/python/lib/python3.7/site-packages/django/core/management/__init__.py", line 357, in execute
remote: django.setup()
remote: File "/app/.heroku/python/lib/python3.7/site-packages/django/__init__.py", line 24, in setup
remote: apps.populate(settings.INSTALLED_APPS)
remote: File "/app/.heroku/python/lib/python3.7/site-packages/django/apps/registry.py", line 114, in populate
remote: app_config.import_models()
remote: File "/app/.heroku/python/lib/python3.7/site-packages/django/apps/config.py", line 211, in import_models
remote: self.models_module = import_module(models_module_name)
remote: File "/app/.heroku/python/lib/python3.7/importlib/__init__.py", line 127, in import_module
remote: return _bootstrap._gcd_import(name[level:], package, level)
remote: File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
remote: File "<frozen importlib._bootstrap>", line 983, in _find_and_load
remote: File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
remote: File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
remote: File "<frozen importlib._bootstrap_external>", line 728, in exec_module
remote: File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
remote: File "/app/.heroku/python/lib/python3.7/site-packages/django/contrib/auth/models.py", line 2, in <module>
remote: from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
remote: File "/app/.heroku/python/lib/python3.7/site-packages/django/contrib/auth/base_user.py", line 47, in <module>
remote: class AbstractBaseUser(models.Model):
remote: File "/app/.heroku/python/lib/python3.7/site-packages/django/db/models/base.py", line 117, in __new__
remote: new_class.add_to_class('_meta', Options(meta, app_label))
remote: File "/app/.heroku/python/lib/python3.7/site-packages/django/db/models/base.py", line 321, in add_to_class
remote: value.contribute_to_class(cls, name)
remote: File "/app/.heroku/python/lib/python3.7/site-packages/django/db/models/options.py", line 204, in contribute_to_class
remote: self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
remote: File "/app/.heroku/python/lib/python3.7/site-packages/django/db/__init__.py", line 28, in __getattr__
remote: return getattr(connections[DEFAULT_DB_ALIAS], item)
remote: File "/app/.heroku/python/lib/python3.7/site-packages/django/db/utils.py", line 201, in __getitem__
remote: backend = load_backend(db['ENGINE'])
remote: File "/app/.heroku/python/lib/python3.7/site-packages/django/db/utils.py", line 110, in load_backend
remote: return import_module('%s.base' % backend_name)
remote: File "/app/.heroku/python/lib/python3.7/importlib/__init__.py", line 127, in import_module
remote: return _bootstrap._gcd_import(name[level:], package, level)
remote: File "/app/.heroku/python/lib/python3.7/site-packages/django/db/backends/postgresql/base.py", line 24, in <module>
remote: raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
remote: django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named 'psycopg2'
remote:
remote: ! Error while running '$ python manage.py collectstatic --noinput'.
remote: See traceback above for details.
remote:
remote: You may need to update application code to resolve this error.
remote: Or, you can disable collectstatic for this application:
remote:
remote: $ heroku config:set DISABLE_COLLECTSTATIC=1
remote:
remote: https://devcenter.heroku.com/articles/django-assets
remote: ! Push rejected, failed to compile Python app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to blooming-taiga-32833.
remote:
To https://git.heroku.com/blooming-taiga-32833.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/blooming-taiga-32833.git'
谁能帮我解决这个问题?
先感谢您!!
解决方案
我在本书作者的帮助下找到了解决方案。我必须将 psycopg2>=2.6.1 包含到 requirements.txt 文件中。
推荐阅读
- c# - 在 Microsoft Bot framework V4 中完成子对话框时,如何继续父对话框?
- php - 如何将图像干预与 Laravel 存储和数字海洋一起使用
- java - 相同的 .war 文件,没有 .xml 配置 Spring MVC 应用程序与 Tomcat9。在 localhost:8080 运行良好,远程服务器出现 404 错误
- html - 将文本对齐到中心的确切方法是什么?
- ios - 通过 UserNotification 自定义操作访问时,CoreData 无法初始化托管对象
- c# - Simple WebClient 在本地工作,但在部署到 Azure 时不能
- javascript - 如何使用模式“\u{”对 unicode 字符进行编码
}" 对于 webpack 4 构建中的旧浏览器? - r - 分层随机分配:修复错误
- animation - 可以在没有重新渲染画布的情况下在画布上渲染动画 SVG 吗?
- tfs - Azure Devops 中的 VSTest 步骤未复制 AutoMapper.dll 的