mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
Migrate the database schema to SQLAlchemy
The new schema was generated with sqlacodegen and then manually adjusted to fit schema/aur-schema.sql faithfully, both in the organisation of the code and in the SQL generated by SQLAlchemy. Initializing the database now requires the new tool aurweb.initdb. References to aur-schema.sql have been updated and the old schema dropped. Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
This commit is contained in:
parent
4b2102ceb2
commit
7188743fc3
10 changed files with 481 additions and 482 deletions
27
aurweb/db.py
27
aurweb/db.py
|
@ -11,6 +11,33 @@ except ImportError:
|
|||
import aurweb.config
|
||||
|
||||
|
||||
def get_sqlalchemy_url():
|
||||
"""
|
||||
Build an SQLAlchemy for use with create_engine based on the aurweb configuration.
|
||||
"""
|
||||
import sqlalchemy
|
||||
aur_db_backend = aurweb.config.get('database', 'backend')
|
||||
if aur_db_backend == 'mysql':
|
||||
return sqlalchemy.engine.url.URL(
|
||||
'mysql+mysqlconnector',
|
||||
username=aurweb.config.get('database', 'user'),
|
||||
password=aurweb.config.get('database', 'password'),
|
||||
host=aurweb.config.get('database', 'host'),
|
||||
database=aurweb.config.get('database', 'name'),
|
||||
query={
|
||||
'unix_socket': aurweb.config.get('database', 'socket'),
|
||||
'buffered': True,
|
||||
},
|
||||
)
|
||||
elif aur_db_backend == 'sqlite':
|
||||
return sqlalchemy.engine.url.URL(
|
||||
'sqlite',
|
||||
database=aurweb.config.get('database', 'name'),
|
||||
)
|
||||
else:
|
||||
raise ValueError('unsupported database backend')
|
||||
|
||||
|
||||
class Connection:
|
||||
_conn = None
|
||||
_paramstyle = None
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue