backend: добавлен скрипт для вставки начальных данных

This commit is contained in:
2022-11-19 17:35:32 +03:00
parent de81e9baa0
commit 64315bf388
3 changed files with 48 additions and 0 deletions

View File

@@ -1,5 +1,6 @@
# TextSouls # TextSouls
### Бэкенд ### Бэкенд
Все действия производить из папки backend! Все действия производить из папки backend!
@@ -12,11 +13,18 @@ flask2postman textsouls.app --name "TextSouls" --folders > text_souls_postman.js
``` ```
scripts/updatedb.sh scripts/updatedb.sh
``` ```
###### Вставка начальных данных
```
python ./scripts/seed_inserter.py
```
###### Запуск ###### Запуск
``` ```
scripts/runserver.sh scripts/runserver.sh
``` ```
### Запуск Telegram ### Запуск Telegram
Из папки Telegram: Из папки Telegram:
``` ```

View File

@@ -0,0 +1,15 @@
[
{
"table_name": "character_classes",
"records": [
{
"id": 1,
"name": "Тест1"
},
{
"id": 2,
"name": "Тест2"
}
]
}
]

View File

@@ -0,0 +1,25 @@
import json
import sqlalchemy
from sqlalchemy.orm import Session
with open("textsouls/config.json") as config_file:
config_data = json.load(config_file)
engine = sqlalchemy.create_engine(
config_data["DB_SETTINGS"]["SQLALCHEMY_DATABASE_URI"]
)
metadata = sqlalchemy.MetaData(bind=engine)
with open("scripts/init_data.json") as seed_file:
seed_data = json.load(seed_file)
for table_data in seed_data:
table = sqlalchemy.Table(table_data["table_name"], metadata, autoload=True)
query = table.insert().values(table_data["records"])
session = Session(engine)
session.execute(query)
session.commit()
session.close()