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:
Frédéric Mangano-Tarumi 2020-02-16 21:56:10 +01:00 committed by Lukas Fleischer
parent 4b2102ceb2
commit 7188743fc3
10 changed files with 481 additions and 482 deletions

23
TESTING
View file

@ -9,26 +9,27 @@ INSTALL.
$ git clone git://git.archlinux.org/aurweb.git
2) Install php and necessary modules:
2) Install the necessary packages:
# pacman -S php php-sqlite sqlite words fortune-mod
# pacman -S --needed php php-sqlite sqlite words fortune-mod python python-sqlalchemy
Ensure to enable the pdo_sqlite extension in php.ini.
3) Prepare the testing database:
$ cd /path/to/aurweb/schema
$ make
$ ./gendummydata.py out.sql
$ sqlite3 ../aurweb.sqlite3 < aur-schema-sqlite.sql
$ sqlite3 ../aurweb.sqlite3 < out.sql
4) Copy conf/config.defaults to conf/config and adjust the configuration
3) Copy conf/config.defaults to conf/config and adjust the configuration
(pay attention to disable_http_login, enable_maintenance and aur_location).
Be sure to change backend to sqlite and name to the file location of your
created test database.
4) Prepare the testing database:
$ cd /path/to/aurweb/
$ python -m aurweb.initdb
$ cd /path/to/aurweb/schema
$ ./gendummydata.py out.sql
$ sqlite3 path/to/aurweb.sqlite3 < out.sql
5) Run the PHP built-in web server:
$ AUR_CONFIG='/path/to/aurweb/conf/config' php -S localhost:8080 -t /path/to/aurweb/web/html