我知道我错过了一些简单的东西,但我不知所措,厌倦了用头撞墙。
我有一个 Flask 应用程序,其中
DB_URI
存储在 .env
文件中,并且该变量被 config
文件调用。它工作,然后它停止工作。
我已经更新了 PgAdmin 和 Python 和 Flask 版本。我在应用程序中添加了一个模型,其中包含一些新关系,修改了现有关系。我已经在 python >>> with app.app_context() ... db.create_all()
中升级了数据库它似乎在终端中工作。我正在打电话flask db migrate ...
,我得到了sqlalchemy.exc.OperationalError
见下文:
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\engine\base.py", line 145, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\engine\base.py", line 3275, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 455, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 1271, in _checkout
fairy = _ConnectionRecord.checkout(pool)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 719, in checkout
rec = pool._do_get()
^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\pool\impl.py", line 283, in _do_get
return self._create_connection()
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 396, in _create_connection
return _ConnectionRecord(self)
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 681, in __init__
self.__connect()
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 905, in __connect
with util.safe_reraise():
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\util\langhelpers.py", line 147, in __exit__
raise exc_value.with_traceback(exc_tb)
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 901, in __connect
self.dbapi_connection = connection = pool._invoke_creator(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\engine\create.py", line 640, in connect
return dialect.connect(*cargs, **cparams)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\engine\default.py", line 580, in connect
return self.loaded_dbapi.connect(*cargs, **cparams)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\psycopg2\__init__.py", line 122, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: FATAL: password authentication failed for user "postgres"
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "C:\Users\user\venv\Scripts\flask.exe\__main__.py", line 7, in <module>
File "C:\Users\user\venv\Lib\site-packages\flask\cli.py", line 1050, in main
cli.main()
File "C:\Users\user\venv\Lib\site-packages\click\core.py", line 1055, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\click\core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\click\core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\click\core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\click\core.py", line 760, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\click\decorators.py", line 26, in new_func
return f(get_current_context(), *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\ishru\ligiteco\venv\Lib\site-packages\flask\cli.py", line 357, in decorator
return __ctx.invoke(f, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\click\core.py", line 760, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\flask_migrate\cli.py", line 105, in migrate
_migrate(directory, message, sql, head, splice, branch_label, version_path,
File "C:\Users\user\venv\Lib\site-packages\flask_migrate\__init__.py", line 111, in wrapped
f(*args, **kwargs)
File "C:\Users\user\venv\Lib\site-packages\flask_migrate\__init__.py", line 170, in migrate
command.revision(config, message, autogenerate=True, sql=sql,
File "C:\Users\user\venv\Lib\site-packages\alembic\command.py", line 229, in revision
script_directory.run_env()
File "C:\Users\user\venv\Lib\site-packages\alembic\script\base.py", line 576, in run_env
util.load_python_file(self.dir, "env.py")
File "C:\Users\user\venv\Lib\site-packages\alembic\util\pyfiles.py", line 94, in load_python_file
module = load_module_py(module_id, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\alembic\util\pyfiles.py", line 110, in load_module_py
spec.loader.exec_module(module) # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap_external>", line 940, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "C:\Users\user\migrations\env.py", line 96, in <module>
run_migrations_online()
File "C:\Users\user\migrations\env.py", line 81, in run_migrations_online
with connectable.connect() as connection:
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\engine\base.py", line 3251, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\engine\base.py", line 147, in __init__
Connection._handle_dbapi_exception_noconnection(
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\engine\base.py", line 2413, in _handle_dbapi_exception_noconnection
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "C:\Users\ishru\ligiteco\venv\Lib\site-packages\sqlalchemy\engine\base.py", line 145, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\engine\base.py", line 3275, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 455, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 1271, in _checkout
fairy = _ConnectionRecord.checkout(pool)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 719, in checkout
rec = pool._do_get()
^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\pool\impl.py", line 283, in _do_get
return self._create_connection()
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 396, in _create_connection
return _ConnectionRecord(self)
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 681, in __init__
self.__connect()
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 905, in __connect
with util.safe_reraise():
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\util\langhelpers.py", line 147, in __exit__
raise exc_value.with_traceback(exc_tb)
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 901, in __connect
self.dbapi_connection = connection = pool._invoke_creator(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\engine\create.py", line 640, in connect
return dialect.connect(*cargs, **cparams)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\sqlalchemy\engine\default.py", line 580, in connect
return self.loaded_dbapi.connect(*cargs, **cparams)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\venv\Lib\site-packages\psycopg2\__init__.py", line 122, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) connection to server at "localhost" (::1), port 5432 failed: FATAL: password authentication failed for user "postgres"
.flaskenv
文件:是这样的:
FLASK_APP=app
FLASK_DEBUG=True
.env
文件有:
DATABASE_URI='postgresql+psycopg2://postgres:[PASSWORD]@localhost/[DB_NAME]'
config.py
文件有:
class DevelopmentConfig(Config):
DEVELOPMENT = True
DEBUG = True
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URI')
__init___.py
有:
app = Flask(__name__,
static_url_path='/',
static_folder='../app/static',
template_folder='../app/templates')
app.config.from_object(config['default'])
config['default'].init_app(app)
我错过了什么?