-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FIX: Mengikat model ke pengkalan data untuk aplikasi pelayan #22
FIX: Mengikat model ke pengkalan data untuk aplikasi pelayan #22
Conversation
Aku dah jelaskan satu bahagian kod dan buang bahagian yang rasa tak patut. if new:
# If a new database is to be created, check if the given path is occupied.
# If not occupied, create the database.
# If occupied, raise FileExistsError
try:
base_path.mkdir(parents=True)
except FileExistsError:
print(f"Populating empty folder `{base_path.resolve()}` with {db_file}")
else:
raise FileExistsError(
f"The path `{base_path.resolve()}` is already occupied with something else. Try passing `new=False` to access the database or consider creating new database in another folder."
)
# Set up readme
README = Path(base_path, "README.md")
"Created using [samudra](https://github.com/samudradev/samudra)",
]
)
# else:
# # Originally, this part was intended to get the path to database via its name in the local `~/.samudra/databases.toml` file when `new=False`.
# # However, that would mean that the `path` parameter is rendered meaningless unless `new=True`.
# # Perhaps this functionality should be outside the function with paths and folder parameters as its result
# # which will be passed to `get_database/get_sqlite` with explicit `new=False`
# db_obj = get_database_info(name=db_file)
# if db_obj is None:
# return FileNotFoundError(
# f"The database name {db_file} is not found. Perhaps it is not created yet. Pass the key `new=True` if that's the case"
# )
# base_path: Path = Path(db_obj["path"], folder=db_file)
# full_path: Path = Path(base_path, db_file) Sepatutnya tidak ada masalah kalau |
Aku fikir nak tambah beberapa test cases untuk ini kalau boleh. Jadi sebelum tu, aku kena tanya berkenaan #23. Ada dua cara yang aku cadangkan untuk menyelesaikan ralat |
Aku baru tahu peewee ada sediakan class
|
Aku sangat hargai kalau dapat buat test. Aku ada jugak cuba buat test bahagian server tapi asyik gagal bab routing. |
Baik, aku akan mula cuba buat test untuk proses pemulaan/pengikatan database dahulu ya. |
Salam @mshumayl ada kemajuan di sini? |
Isu yang dituju
#20 #21
Perubahan yang dibuat
bind
) model dan pengkalan data melalui fungsicreate_tables
daripadasamudra.models
.Perincian perubahan lain
ENGINE
,DATABASE_NAME
kesamudra/server/setup.py
untuk mengelakkan nilai ini dirujuk sebelum pentakrifan semasa proses permulaan.PATH
di dalamsamudra/server/setup.py
untuk menjelaskan keperluan argumenpath
dalam panggilanget_database
disamudra/server/setup.py
.reload
kepadaFalse
untuk panggilan kaedahuvicorn.run()
untuk mengelakkan proses pemulaan, penciptaan, dan pengikatan pengkalan data diulangi ketika pelayan sedang berjalan.Kalau boleh, minta tolong @Thaza-Kun tolong semak sama ada perubahan ini masuk akal ataupun ada perkara yang boleh dibuat dengan lebih molek.