Я создаю таблицы базы данных sqlite по этой ссылке https://sqlmodel.tiangolo.com/tutorial/ ... ed-tables/.
Теперь создаются две таблицы Team и Hero при запуске моего приложения FastAPI. Но в особых случаях мне может потребоваться создать еще одну новую таблицу.
Я, конечно, могу сделать это, следуя
def create_specific_table():
conn = engine.connect()
conn.execute(
""" CREATE TABLE IF NOT EXISTS table2 (
key TEXT PRIMARY KEY,
execution_id TEXT,
)"""
)
Но я хочу сделать это с помощью класса Model. # модели/table2.py
from sqlmodel import Column, SQLModel
class Table2(SQLModel, table=True):
key: str = Field(default=None, foreign_key="table1.id")
execution_id: str = Field(title="My Execution ID", index=False, default=None)
А потом
def create_specific_table():
import db.engine # Using the same engine
SQLModel.metadata.create_all(engine)
Но таблица Table2 не создается .
Я также пробовал передать таблицу в списки таблиц create_all
def create_specific_table():
import db.engine # Using the same engine
SQLModel.metadata.create_all(engine, tables=[Table1, Table2])
Но ошибка ниже
Traceback (most recent call last):
File "pydantic/validators.py", line 709, in pydantic.validators.find_validators
TypeError: issubclass() arg 1 must be a class
sqlmodel/main.py", line 277, in __new__
new_cls = super().__new__(cls, name, bases, dict_used, **config_kwargs)
File "pydantic/main.py", line 205, in pydantic.main.ModelMetaclass.__new__
File "pydantic/fields.py", line 491, in pydantic.fields.ModelField.infer
File "pydantic/fields.py", line 421, in pydantic.fields.ModelField.__init__
File "pydantic/fields.py", line 542, in pydantic.fields.ModelField.prepare
File "pydantic/fields.py", line 804, in pydantic.fields.ModelField.populate_validators
File "pydantic/validators.py", line 718, in find_validators
RuntimeError: error checking inheritance of FieldInfo(extra={}) (type: FieldInfo)
Способ запуска создания модели базы данных в main.py в основном
@app.on_event("startup")
def on_startup():
create_db_and_tables() # these are common
create_specific_table()
Подробнее здесь: https://stackoverflow.com/questions/736 ... h-sqlmodel
Как создать таблицу в существующей базе данных с помощью sqlmodel ⇐ Python
Программы на Python
-
Anonymous
1733053468
Anonymous
Я создаю таблицы базы данных sqlite по этой ссылке https://sqlmodel.tiangolo.com/tutorial/connect/create-connected-tables/.
Теперь создаются две таблицы Team и Hero при запуске моего приложения FastAPI. Но в особых случаях мне может потребоваться создать еще одну новую таблицу.
Я, конечно, могу сделать это, следуя
def create_specific_table():
conn = engine.connect()
conn.execute(
""" CREATE TABLE IF NOT EXISTS table2 (
key TEXT PRIMARY KEY,
execution_id TEXT,
)"""
)
Но я хочу сделать это с помощью класса Model. # модели/table2.py
from sqlmodel import Column, SQLModel
class Table2(SQLModel, table=True):
key: str = Field(default=None, foreign_key="table1.id")
execution_id: str = Field(title="My Execution ID", index=False, default=None)
А потом
def create_specific_table():
import db.engine # Using the same engine
SQLModel.metadata.create_all(engine)
Но таблица Table2 не создается .
Я также пробовал передать таблицу в списки таблиц create_all
def create_specific_table():
import db.engine # Using the same engine
SQLModel.metadata.create_all(engine, tables=[Table1, Table2])
Но ошибка ниже
Traceback (most recent call last):
File "pydantic/validators.py", line 709, in pydantic.validators.find_validators
TypeError: issubclass() arg 1 must be a class
sqlmodel/main.py", line 277, in __new__
new_cls = super().__new__(cls, name, bases, dict_used, **config_kwargs)
File "pydantic/main.py", line 205, in pydantic.main.ModelMetaclass.__new__
File "pydantic/fields.py", line 491, in pydantic.fields.ModelField.infer
File "pydantic/fields.py", line 421, in pydantic.fields.ModelField.__init__
File "pydantic/fields.py", line 542, in pydantic.fields.ModelField.prepare
File "pydantic/fields.py", line 804, in pydantic.fields.ModelField.populate_validators
File "pydantic/validators.py", line 718, in find_validators
RuntimeError: error checking inheritance of FieldInfo(extra={}) (type: FieldInfo)
Способ запуска создания модели базы данных в main.py в основном
@app.on_event("startup")
def on_startup():
create_db_and_tables() # these are common
create_specific_table()
Подробнее здесь: [url]https://stackoverflow.com/questions/73631480/how-to-create-table-in-existing-database-with-sqlmodel[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия