Почему я не могу создавать таблицы?Python

Программы на Python
Ответить
Anonymous
 Почему я не могу создавать таблицы?

Сообщение Anonymous »

Я новичок в Python и базах данных. И я делаю бэкэнд с помощью postgresql. Важно отметить, что ChatGPT написал за меня мой код. Имя проекта — greenid, а также имя моей базы данных в postgresql. У меня PostgreSQL 16-й версии. Так что же означает эта ошибка? Что мне нужно сделать? Мой .env:
DB_USER=postgres
DB_PASSWORD=test123
DB_HOST=localhost
DB_PORT=5432
DB_NAME=greenid

Также эта ошибка возникла при попытке запустить init_db.py:
from database import Base, engine
import models
Base.metadata.create_all(bind=engine)
print("Таблицы успешно созданы")

и, возможно, если вам нужен data.py:


import os
from dotenv import load_dotenv
from urllib.parse import quote_plus
from sqlalchemy import create_engine
from sqlalchemy.orm import declarative_base

# 1️⃣ Загружаем .env
load_dotenv()
print("DB_PASSWORD =", os.getenv("DB_PASSWORD"))

# 2️⃣ Получаем значения
DB_USER = os.getenv("DB_USER")
DB_PASSWORD_RAW = os.getenv("DB_PASSWORD")
DB_HOST = os.getenv("DB_HOST")
DB_PORT = os.getenv("DB_PORT")
DB_NAME = os.getenv("DB_NAME")

# 3️⃣ Проверка (ОБЯЗАТЕЛЬНО)
if DB_PASSWORD_RAW is None:
raise RuntimeError("❌ DB_PASSWORD не найден. Проверь файл .env")

# 4️⃣ Кодируем пароль
DB_PASSWORD = quote_plus(DB_PASSWORD_RAW)

DATABASE_URL = (
f"postgresql+psycopg2://{DB_USER}:{DB_PASSWORD}"
f"@{DB_HOST}:{DB_PORT}/{DB_NAME}"
)

engine = create_engine(DATABASE_URL)
Base = declarative_base()

Сама ошибка:
DB_PASSWORD = test123
Traceback (most recent call last):
File "C:\Users\bekan\Desktop\greenid-backend\init_db.py", line 4, in
Base.metadata.create_all(bind=engine)
~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "C:\Users\bekan\Desktop\greenid-backend\venv\Lib\site-packages\sqlalchemy\sql\schema.py", line 5928, in create_all
bind._run_ddl_visitor(
~~~~~~~~~~~~~~~~~~~~~^
ddl.SchemaGenerator, self, checkfirst=checkfirst, tables=tables
)
^
File "C:\Users\bekan\Desktop\greenid-backend\venv\Lib\site-packages\sqlalchemy\engine\base.py", line 3259, in _run_ddl_visitor
with self.begin() as conn:
~~~~~~~~~~^^
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.13_3.13.2544.0_x64__qbz5n2kfra8p0\Lib\contextlib.py", line 141, in __enter__
return next(self.gen)
File "C:\Users\bekan\Desktop\greenid-backend\venv\Lib\site-packages\sqlalchemy\engine\base.py", line 3249, in begin
with self.connect() as conn:
~~~~~~~~~~~~^^
File "C:\Users\bekan\Desktop\greenid-backend\venv\Lib\site-packages\sqlalchemy\engine\base.py", line 3285, in connect
return self._connection_cls(self)
~~~~~~~~~~~~~~~~~~~~^^^^^^
File "C:\Users\bekan\Desktop\greenid-backend\venv\Lib\site-packages\sqlalchemy\engine\base.py", line 143, in __init__
self._dbapi_connection = engine.raw_connection()
~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\bekan\Desktop\greenid-backend\venv\Lib\site-packages\sqlalchemy\engine\base.py", line 3309, in raw_connection
return self.pool.connect()
~~~~~~~~~~~~~~~~~^^
File "C:\Users\bekan\Desktop\greenid-backend\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 447, in connect
return _ConnectionFairy._checkout(self)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
File "C:\Users\bekan\Desktop\greenid-backend\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 1264, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "C:\Users\bekan\Desktop\greenid-backend\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 711, in checkout
rec = pool._do_get()
File "C:\Users\bekan\Desktop\greenid-backend\venv\Lib\site-packages\sqlalchemy\pool\impl.py", line 177, in _do_get
with util.safe_reraise():
~~~~~~~~~~~~~~~~~^^
File "C:\Users\bekan\Desktop\greenid-backend\venv\Lib\site-packages\sqlalchemy\util\langhelpers.py", line 224, in __exit__
raise exc_value.with_traceback(exc_tb)
File "C:\Users\bekan\Desktop\greenid-backend\venv\Lib\site-packages\sqlalchemy\pool\impl.py", line 175, in _do_get
return self._create_connection()
~~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\bekan\Desktop\greenid-backend\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 388, in _create_connection
return _ConnectionRecord(self)
File "C:\Users\bekan\Desktop\greenid-backend\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 673, in __init__
self.__connect()
~~~~~~~~~~~~~~^^
File "C:\Users\bekan\Desktop\greenid-backend\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 899, in __connect
with util.safe_reraise():
~~~~~~~~~~~~~~~~~^^
File "C:\Users\bekan\Desktop\greenid-backend\venv\Lib\site-packages\sqlalchemy\util\langhelpers.py", line 224, in __exit__
raise exc_value.with_traceback(exc_tb)
File "C:\Users\bekan\Desktop\greenid-backend\venv\Lib\site-packages\sqlalchemy\pool\base.py", line 895, in __connect
self.dbapi_connection = connection = pool._invoke_creator(self)
~~~~~~~~~~~~~~~~~~~~^^^^^^
File "C:\Users\bekan\Desktop\greenid-backend\venv\Lib\site-packages\sqlalchemy\engine\create.py", line 661, in connect
return dialect.connect(*cargs, **cparams)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
File "C:\Users\bekan\Desktop\greenid-backend\venv\Lib\site-packages\sqlalchemy\engine\default.py", line 630, in connect
return self.loaded_dbapi.connect(*cargs, **cparams) # type: ignore[no-any-return] # NOQA: E501
~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
File "C:\Users\bekan\Desktop\greenid-backend\venv\Lib\site-packages\psycopg2\__init__.py", line 135, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc2 in position 61: invalid continuation byte


Подробнее здесь: https://stackoverflow.com/questions/798 ... ate-tables
Ответить

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

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

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

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

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