operations = [
migrations.RunSQL(
- "UPDATE confreg_conferenceregistration SET regtoken=encode(pgcrypto.digest(pgcrypto.gen_random_bytes(250), 'sha256'), 'hex') WHERE regtoken IS NULL"
+ """WITH t AS (
+ SELECT r.id, string_agg(lpad(to_hex((random() * 255)::int)::text, 2, '0'),'') AS rnd
+ FROM confreg_conferenceregistration r CROSS JOIN generate_series(1,32) g(g)
+ WHERE r.regtoken IS NULL GROUP BY r.id
+)
+UPDATE confreg_conferenceregistration rr SET regtoken=rnd FROM t WHERE t.id=rr.id""",
),
migrations.AlterField(
model_name='conferenceregistration',
field=models.TextField(unique=True),
),
migrations.RunSQL(
- "UPDATE confreg_speaker SET speakertoken=encode(pgcrypto.digest(pgcrypto.gen_random_bytes(250), 'sha256'), 'hex') WHERE speakertoken IS NULL"
+ """WITH t AS (
+ SELECT s.id, string_agg(lpad(to_hex((random() * 255)::int)::text, 2, '0'),'') AS rnd
+ FROM confreg_speaker s CROSS JOIN generate_series(1,32) g(g)
+ WHERE s.speakertoken IS NULL GROUP BY s.id
+)
+UPDATE confreg_speaker ss SET speakertoken=rnd FROM t WHERE t.id=ss.id""",
),
migrations.AlterField(
model_name='speaker',
field=models.TextField(blank=True, null=True, unique=True),
),
migrations.RunSQL(
- "UPDATE confreg_conferenceregistration SET idtoken=encode(pgcrypto.digest(pgcrypto.gen_random_bytes(250), 'sha256'), 'hex') WHERE idtoken IS NULL"
+ """WITH t AS (
+ SELECT r.id, string_agg(lpad(to_hex((random() * 255)::int)::text, 2, '0'),'') AS rnd
+ FROM confreg_conferenceregistration r CROSS JOIN generate_series(1,32) g(g)
+ WHERE r.idtoken IS NULL GROUP BY r.id
+)
+UPDATE confreg_conferenceregistration rr SET idtoken=rnd FROM t WHERE t.id=rr.id""",
),
migrations.RunSQL(
- "UPDATE confreg_conferenceregistration SET publictoken=encode(pgcrypto.digest(pgcrypto.gen_random_bytes(250), 'sha256'), 'hex') WHERE publictoken IS NULL"
+ """WITH t AS (
+ SELECT r.id, string_agg(lpad(to_hex((random() * 255)::int)::text, 2, '0'),'') AS rnd
+ FROM confreg_conferenceregistration r CROSS JOIN generate_series(1,32) g(g)
+ WHERE r.publictoken IS NULL GROUP BY r.id
+)
+UPDATE confreg_conferenceregistration rr SET publictoken=rnd FROM t WHERE t.id=rr.id""",
),
migrations.AlterField(
model_name='conferenceregistration',
echo "Verifying postgres connection..."
psql -w "host=$PGH port=$PGP dbname=$PGD user=$PGU" -c "SELECT 1" >/dev/null
-echo "Verifying that pgcrypto is installed in the pgcrypto schema..."
-psql -w "host=$PGH port=$PGP dbname=$PGD user=$PGU" -c "CREATE SCHEMA IF NOT EXISTS pgcrypto; CREATE EXTENSION IF NOT EXISTS pgcrypto SCHEMA pgcrypto; SELECT pgcrypto.gen_random_uuid()"
-
# Start from script directory to be safe!
cd "${0%/*}"