错误日志如下,代码是copy《flask web 开发》
lanxiang@machine:~/bushu2$ heroku run python manage.py deploy
Running python manage.py deploy on ⬢ x1996... up, run.8593
INFO [alembic.migration] Context impl PostgresqlImpl.
INFO [alembic.migration] Will assume transactional DDL.
INFO [alembic.migration] Running upgrade None -> f3893df0869f, init migrations
Traceback (most recent call last):
File "manage.py", line 81, in <module>
manager.run()
File "/app/.heroku/python/lib/python2.7/site-packages/flask_script/__init__.py", line 405, in run
result = self.handle(sys.argv[0], sys.argv[1:])
File "/app/.heroku/python/lib/python2.7/site-packages/flask_script/__init__.py", line 384, in handle
return handle(app, *positional_args, **kwargs)
File "/app/.heroku/python/lib/python2.7/site-packages/flask_script/commands.py", line 145, in handle
return self.run(*args, **kwargs)
File "manage.py", line 71, in deploy
upgrade()
File "/app/.heroku/python/lib/python2.7/site-packages/flask_migrate/__init__.py", line 98, in upgrade
command.upgrade(config, revision, sql = sql, tag = tag)
File "/app/.heroku/python/lib/python2.7/site-packages/alembic/command.py", line 124, in upgrade
script.run_env()
File "/app/.heroku/python/lib/python2.7/site-packages/alembic/script.py", line 199, in run_env
util.load_python_file(self.dir, 'env.py')
File "/app/.heroku/python/lib/python2.7/site-packages/alembic/util.py", line 199, in load_python_file
module = load_module(module_id, path)
File "/app/.heroku/python/lib/python2.7/site-packages/alembic/compat.py", line 55, in load_module
mod = imp.load_source(module_id, path, fp)
File "migrations/env.py", line 72, in <module>
run_migrations_online()
File "migrations/env.py", line 65, in run_migrations_online
context.run_migrations()
File "<string>", line 7, in run_migrations
File "/app/.heroku/python/lib/python2.7/site-packages/alembic/environment.py", line 652, in run_migrations
self.get_context().run_migrations(**kw)
File "/app/.heroku/python/lib/python2.7/site-packages/alembic/migration.py", line 225, in run_migrations
change(**kw)
File "migrations/versions/f3893df0869f_init_migrations.py", line 27, in upgrade
op.create_index(op.f('ix_roles_default'), 'roles', ['default'], unique=False)
AttributeError: 'module' object has no attribute 'f'
Cela devrait être un problème de migration de base de données La modification du fichier de migration peut être un peu difficile pour vous à ce stade.
Comme c'est la phase d'apprentissage, je pense temporairement que votre base de données ne contient pas de données importantes, je vous propose donc de faire ceci :
Supprimer la base de données locale
Supprimer le dossier de migration
Réessayer le déploiement
Je vais vous donner un article de mon blog pour référence. Il n'est peut-être pas exhaustif, mais il devrait vous aider à comprendre.
Les suggestions que j'ai avancées dans l'article pensent personnellement que c'est vraiment important Il est recommandé de supprimer et de redéployer après l'avoir lu.
Une certaine expérience dans la migration et le déploiement de bases de données Flask
Si vous êtes intéressé, vous pouvez suivre les indices et jeter un œil à ma réponse sur ce forum. Il y a un contexte pour une compréhension facile.
Voici quelques conseils pour vous :
Apprenez à lire les messages d'erreur
Il est nécessaire de comprendre la fonction de migration