Make matrix-registration use Postgres by default
Now that 0.7.2 is out, the Docker image supports Postgres and we can do the (SQLite -> Postgres) migration. I've also found out that we needed to fix up the `tokens.ex_date` column data type a bit to prevent matrix-registration from raising exceptions when comparing `datetime.now()` with `ex_date` coming from the database. Example: > File "/usr/local/lib/python3.8/site-packages/matrix_registration/tokens.py", line 58, in valid > expired = self.ex_date < datetime.now() > TypeError: can't compare offset-naive and offset-aware datetimes
This commit is contained in:
		| @@ -1317,9 +1317,8 @@ matrix_registration_systemd_required_services_list: | | |||||||
|     (['matrix-postgres.service'] if matrix_postgres_enabled else []) |     (['matrix-postgres.service'] if matrix_postgres_enabled else []) | ||||||
|   }} |   }} | ||||||
|  |  | ||||||
| # We'd like to use 'postgres' if matrix_postgres_enabled, but the container image doesn't seem to support that. | # Postgres is the default, except if not using `matrix_postgres` (internal postgres) | ||||||
| # Learn more here: https://github.com/ZerataX/matrix-registration/issues/44 | matrix_registration_database_engine: "{{ 'postgres' if matrix_postgres_enabled else 'sqlite' }}" | ||||||
| matrix_registration_database_engine: 'sqlite' |  | ||||||
| matrix_registration_database_password: "{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'mx.registr.db') | to_uuid }}" | matrix_registration_database_password: "{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'mx.registr.db') | to_uuid }}" | ||||||
|  |  | ||||||
| ###################################################################### | ###################################################################### | ||||||
|   | |||||||
| @@ -88,7 +88,6 @@ matrix_registration_admin_secret: "" | |||||||
|  |  | ||||||
| matrix_registration_riot_instance: "https://riot.im/app/" | matrix_registration_riot_instance: "https://riot.im/app/" | ||||||
|  |  | ||||||
|  |  | ||||||
| # Default matrix-registration configuration template which covers the generic use case. | # Default matrix-registration configuration template which covers the generic use case. | ||||||
| # You can customize it by controlling the various variables inside it. | # You can customize it by controlling the various variables inside it. | ||||||
| # | # | ||||||
|   | |||||||
| @@ -18,6 +18,11 @@ | |||||||
|               engine_variable_name: 'matrix_registration_database_engine' |               engine_variable_name: 'matrix_registration_database_engine' | ||||||
|               engine_old: 'sqlite' |               engine_old: 'sqlite' | ||||||
|               systemd_services_to_stop: ['matrix-registration.service'] |               systemd_services_to_stop: ['matrix-registration.service'] | ||||||
|  |               # pgloader makes `ex_date` of type `TIMESTAMP WITH TIMEZONE`, | ||||||
|  |               # which makes matrix-registration choke on it later on when comparing dates. | ||||||
|  |               additional_psql_statements_list: | ||||||
|  |                 - ALTER TABLE tokens ALTER COLUMN ex_date TYPE TIMESTAMP WITHOUT TIME ZONE; | ||||||
|  |               additional_psql_statements_db_name: "{{ matrix_registration_database_db_name }}" | ||||||
|  |  | ||||||
|         - import_tasks: "roles/matrix-postgres/tasks/util/migrate_db_to_postgres.yml" |         - import_tasks: "roles/matrix-postgres/tasks/util/migrate_db_to_postgres.yml" | ||||||
|  |  | ||||||
|   | |||||||
| @@ -18,10 +18,3 @@ | |||||||
|   when: "item.old in vars" |   when: "item.old in vars" | ||||||
|   with_items: |   with_items: | ||||||
|     - {'old': 'matrix_registration_docker_repo', 'new': 'matrix_registration_container_image_self_build_repo'} |     - {'old': 'matrix_registration_docker_repo', 'new': 'matrix_registration_container_image_self_build_repo'} | ||||||
|  |  | ||||||
| - name: Fail if Postgres usage attempted |  | ||||||
|   fail: |  | ||||||
|     msg: > |  | ||||||
|       matrix-registration doesn't support using Postgres just yet. |  | ||||||
|       Learn more here: https://github.com/ZerataX/matrix-registration/issues/44 |  | ||||||
|   when: "matrix_registration_database_engine == 'postgres'" |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user