migrate db to support confirmation emails

This commit is contained in:
Andre Heber
2024-02-26 15:42:56 +01:00
parent c4817e486c
commit ff0fb28e4b
4 changed files with 17 additions and 2 deletions

View File

@ -0,0 +1 @@
ALTER TABLE subscriptions ADD COLUMN status TEXT NULL;

View File

@ -0,0 +1,8 @@
BEGIN;
-- Backfill `status` for historical entries
UPDATE subscriptions
SET status = 'confirmed'
WHERE status IS NULL;
-- Make `status` mandatory
ALTER TABLE subscriptions ALTER COLUMN status SET NOT NULL;
COMMIT;

View File

@ -0,0 +1,6 @@
CREATE TABLE subscription_tokens(
subscription_token TEXT NOT NULL,
subscriber_id uuid NOT NULL
REFERENCES subscriptions (id),
PRIMARY KEY (subscription_token)
);

View File

@ -104,8 +104,8 @@ impl TryFrom<FormData> for NewSubscriber {
async fn insert_subscriber(new_subscriber: &NewSubscriber, connection_pool: &Pool<Postgres>) -> Result<(), sqlx::Error> { async fn insert_subscriber(new_subscriber: &NewSubscriber, connection_pool: &Pool<Postgres>) -> Result<(), sqlx::Error> {
query!( query!(
r#" r#"
INSERT INTO subscriptions (id, email, name, subscribed_at) INSERT INTO subscriptions (id, email, name, subscribed_at, status)
VALUES ($1, $2, $3, $4) VALUES ($1, $2, $3, $4, 'confirmed')
"#, "#,
Uuid::new_v4(), Uuid::new_v4(),
new_subscriber.email.as_ref(), new_subscriber.email.as_ref(),