VS CODE Python SQLALCHEMY ALEMBIC не выводит и не выводит печать, отладка или журналыPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 VS CODE Python SQLALCHEMY ALEMBIC не выводит и не выводит печать, отладка или журналы

Сообщение Anonymous »

Я запускаю VS Code Python 3.12.8 в функции Azure с использованием Flash и Venev. Я установил SQLalchemy, чтобы заставить мой Postgres SQL, и я не могу заставить Алембика сделать первую миграцию. Я получаю только трассировку стека в терминале или выпущен в журнале файлов.
from sqlalchemy import create_engine, text

DATABASE_URL = "postgresql://************************/postgres?sslmode=require"

engine = create_engine(DATABASE_URL, pool_pre_ping=True, echo=True)

try:
with engine.connect() as connection:
result = connection.execute(text("SELECT version();")) # ✅ Use `text()`
print("✅ Connected! PostgreSQL Version:", result.fetchone()[0])
except Exception as e:
print("❌ SQLAlchemy Connection Failed:", e)

На случай, если это имеет значение, вот мой макет кода
< /p>
alembic.ini
# A generic, single-database configuration.

[alembic]
script_location = alembic
sqlalchemy.url = postgresql://%(PGUSER)s:%(PGPASSWORD)s@%(PGHOST)s:%(PGPORT)s/%(PGDATABASE)s?sslmode=require

# Logging settings
output_encoding = utf-8

[loggers]
keys = root, sqlalchemy, alembic

[handlers]
keys = console, file

[formatters]
keys = generic

[logger_root]
level = DEBUG
handlers = console, file

[logger_sqlalchemy]
level=DEBUG
handlers=console
qualname=sqlalchemy.engine
propagate=0

[logger_alembic]
level=DEBUG
handlers=console,file
qualname=alembic
propagate=0

[handler_console]
class=StreamHandler
args=(sys.stdout,)
level=DEBUG
formatter=generic

[handler_file]
class=FileHandler
args=('alembic_debug.log', 'w')
level=DEBUG
formatter=generic

[formatter_generic]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
< /code>
env.py
import sys
import os
sys.path.insert(0, os.getcwd())
sys.path.insert(0, os.path.dirname(os.path.dirname(__file__)))

from logging.config import fileConfig
from sqlalchemy import engine_from_config
from sqlalchemy import pool
from sqlalchemy import create_engine
from alembic import context
from models import Base

import psycopg2

# --- 🔹 FIX IMPORT PATH ISSUES ---
sys.path.insert(0, os.getcwd()) # Add current working directory
sys.path.insert(0, os.path.dirname(os.path.dirname(__file__))) # Add project root

import os
import sys
import logging
from sqlalchemy import create_engine
from alembic import context

import os
import logging

logging.basicConfig(level=logging.DEBUG, format="%(asctime)s - %(levelname)s - %(message)s")
logger = logging.getLogger(__name__)

debug_mode = context.get_x_argument(as_dictionary=True).get("debug", "0") == "1"

if debug_mode:
logger.setLevel(logging.DEBUG)
print("DEBUG MODE ENABLED")
else:
print("DEBUG MODE NOT ENABLED")

logger.debug("🔹 Alembic env.py is executing")

# ✅ Load environment variables
DB_USER = os.getenv("PGUSER", "uuuuuuuuu")
DB_PASSWORD = os.getenv("PGPASSWORD", "999999999999999999") # Replace with encoded password if needed
DB_HOST = os.getenv("PGHOST", "uuuuuuuuuuuuuuu")
DB_PORT = os.getenv("PGPORT", "111111")
DB_NAME = os.getenv("PGDATABASE", "postgres")

# ✅ Log database variables (masking password)
logger.info("\n🔹 Alembic Database Variables:")
logger.info(f" PGUSER: {DB_USER}")
logger.info(f" PGPASSWORD: {'*' * len(DB_PASSWORD)}") # Mask password
logger.info(f" PGHOST: {DB_HOST}")
logger.info(f" PGPORT: {DB_PORT}")
logger.info(f" PGDATABASE: {DB_NAME}")

# ✅ Construct database URL
DATABASE_URL = f"postgresql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}?sslmode=require"
# ✅ Log and Print Debug Info
logger.debug(f"🔹 Alembic is using this Database URL: {DATABASE_URL}")

# ✅ Run Alembic
config = context.config
config.set_main_option("sqlalchemy.url", str(DATABASE_URL))
< /code>
вывод терминала < /p>
Steve@DESKTOP-NRG7PHJ MINGW64 ~/Documents/GitHub/KUSA/kusa.marketing (main)
$ alembic -x debug=1 upgrade head
Traceback (most recent call last):
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\engine\base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\engine\base.py", line 3298, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\pool\base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\pool\base.py", line 1263, in _checkout
fairy = _ConnectionRecord.checkout(pool)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\pool\base.py", line 712, in checkout
rec = pool._do_get()
^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\pool\impl.py", line 179, in _do_get
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\util\langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\pool\impl.py", line 177, in _do_get
return self._create_connection()
^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\pool\base.py", line 390, in _create_connection
return _ConnectionRecord(self)
^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\pool\base.py", line 674, in __init__
self.__connect()
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\pool\base.py", line 900, in __connect
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\util\langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\pool\base.py", line 896, in __connect
self.dbapi_connection = connection = pool._invoke_creator(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\engine\create.py", line 646, in connect
return dialect.connect(*cargs, **cparams)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\engine\default.py", line 622, in connect
return self.loaded_dbapi.connect(*cargs, **cparams)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.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 "AZURE.INSTANCE" (MYIP), port 5432 failed: FATAL: password authentication failed for user "USER"
connection to server at "AZURE.INSTANCE" (MYIP), port 5432 failed: FATAL: no pg_hba.conf entry for host "SERVERIP", user "USER", database "postgres", no encryption

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "", line 198, in _run_module_as_main
File "", line 88, in _run_code
File "C:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Scripts\alembic.exe\__main__.py", line 7, in
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\alembic\config.py", line 636, in main
CommandLine(prog=prog).main(argv=argv)
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\alembic\config.py", line 626, in main
self.run_cmd(cfg, options)
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\alembic\config.py", line 603, in run_cmd
fn(
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\alembic\command.py", line 406, in upgrade
script.run_env()
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\alembic\script\base.py", line 586, in run_env
util.load_python_file(self.dir, "env.py")
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\alembic\util\pyfiles.py", line 95, in load_python_file
module = load_module_py(module_id, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\alembic\util\pyfiles.py", line 113, in load_module_py
spec.loader.exec_module(module) # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "", line 999, in exec_module
File "", line 488, in _call_with_frames_removed
File "C:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\alembic\env.py", line 11, in
from models import Base
File "C:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\models.py", line 142, in
Base.metadata.create_all(engine)
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\sql\schema.py", line 5900, in create_all
bind._run_ddl_visitor(
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\engine\base.py", line 3248, in _run_ddl_visitor
with self.begin() as conn:
^^^^^^^^^^^^
File "C:\Users\Steve\AppData\Local\Programs\Python\Python312\Lib\contextlib.py", line 137, in __enter__
return next(self.gen)
^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\engine\base.py", line 3238, in begin
with self.connect() as conn:
^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\engine\base.py", line 3274, in connect
return self._connection_cls(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\engine\base.py", line 148, in __init__
Connection._handle_dbapi_exception_noconnection(
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\engine\base.py", line 2439, in _handle_dbapi_exception_noconnection
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\engine\base.py", line 146, in __init__
self._dbapi_connection = engine.raw_connection()
^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\engine\base.py", line 3298, in raw_connection
return self.pool.connect()
^^^^^^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\pool\base.py", line 449, in connect
return _ConnectionFairy._checkout(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\pool\base.py", line 1263, in _checkout
fairy = _ConnectionRecord.checkout(pool)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\pool\base.py", line 712, in checkout
rec = pool._do_get()
^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\pool\impl.py", line 179, in _do_get
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\util\langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\pool\impl.py", line 177, in _do_get
return self._create_connection()
^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\pool\base.py", line 390, in _create_connection
return _ConnectionRecord(self)
^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\pool\base.py", line 674, in __init__
self.__connect()
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\pool\base.py", line 900, in __connect
with util.safe_reraise():
^^^^^^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\util\langhelpers.py", line 146, in __exit__
raise exc_value.with_traceback(exc_tb)
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\pool\base.py", line 896, in __connect
self.dbapi_connection = connection = pool._invoke_creator(self)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\engine\create.py", line 646, in connect
return dialect.connect(*cargs, **cparams)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.venv\Lib\site-packages\sqlalchemy\engine\default.py", line 622, in connect
return self.loaded_dbapi.connect(*cargs, **cparams)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Steve\Documents\GitHub\KUSA\kusa.marketing\.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 "AZURE.INSTANCE" (MYIP), port 5432 failed: FATAL: password authentication failed for user "USER"
connection to server at "AZURE.INSTANCE" (MYIP), port 5432 failed: FATAL: no pg_hba.conf entry for host "SERVERIP", user "USER", database "postgres", no encryption

(Background on this error at: https://sqlalche.me/e/20/e3q8)


Подробнее здесь: https://stackoverflow.com/questions/794 ... ug-or-logs
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»