symposion_app/ROLLING OVER.md

111 lines
3.8 KiB
Markdown
Raw Normal View History

2026-02-24 13:40:50 +11:00
# Rolling over for a new conference
2026-02-24 13:40:50 +11:00
This website collects a limited amount of personally identifiable information for the purposes of organizing a conference. In the interests of security, we've chosen to reset the site for each conference to limit the amount of information that could potentially ever be exposed in the event of a vulnerability.
## Step 1: Take a snapshot of the public conference site
Method described here:
https://f.sfconservancy.org/Conservancy/2024.fossy.us/src/branch/main/README.md
## Step 2: Download any reports for archive use
This might include the attendees, talks proposed and speakers.
## Step 3: Take a database backup
This is useful in case we miss something. Run:
2026-02-20 16:33:09 +11:00
fab download-postgres-db
2026-02-24 13:40:50 +11:00
## Step 4: Delete any uploaded files/reports
On the server, run:
rm -rf /srv/symposion_app/site_media/*
## Step 4: Reset the database
Remove all accounts, tickets, invoices, talks, etc.
Probably the easiest approach is to select and delete all non-staff "User" records via Django Admin and letting the cascading deletes handle any relationships.
I've previously also used the commands below:
```
$ sudo -u postgres psql symposion
delete from registrasion_lineitem;
delete from registrasion_manualpayment;
delete from registripe_stripepayment;
delete from registrasion_creditnote;
delete from registrasion_paymentbase;
delete from registrasion_invoice;
delete from registrasion_cart_vouchers;
delete from registrasion_productitem;
delete from registrasion_discountitem;
delete from registrasion_cart;
delete from pinaxcon_registrasion_attendeeprofile;
delete from registrasion_attendeeprofilebase;
delete from registrasion_attendee;
delete from proposals_aiandmachinelearningproposal;
delete from proposals_diversityequityandinclusionproposal;
delete from proposals_fossandarm64proposal;
delete from proposals_fossfundingandeconomicsproposal;
delete from proposals_fossindailylifeproposal;
delete from proposals_fossineducationproposal;
delete from proposals_keynotepanelproposal;
delete from proposals_licensingandlegalissuesproposal;
delete from proposals_memberprojectsproposal;
delete from proposals_mobiledeviceuserfreedomproposal;
delete from proposals_reproducibilityproposal;
delete from proposals_righttorepairproposal;
delete from proposals_scienceofcommunityproposal;
delete from proposals_seleniumproposal;
delete from proposals_supportingusergroupsproposal;
delete from proposals_talkproposal;
delete from proposals_tutorialproposal;
delete from proposals_wildcardproposal;
delete from proposals_xmppproposal;
delete from symposion_reviews_proposalresult;
delete from symposion_reviews_resultnotification;
delete from symposion_schedule_presentation_additional_speakers;
delete from symposion_schedule_presentation;
delete from symposion_reviews_latestvote;
delete from symposion_reviews_proposalmessage;
delete from symposion_proposals_additionalspeaker;
delete from symposion_proposals_supportingdocument;
delete from symposion_proposals_proposalbase;
2026-02-20 16:33:09 +11:00
delete from account_account where user_id in (select id from auth_user where is_staff = false);
delete from account_emailconfirmation;
2026-02-20 16:33:09 +11:00
delete from account_emailaddress where user_id in (select id from auth_user where is_staff = false);
delete from symposion_speakers_speaker;
delete from reversion_version;
delete from reversion_revision;
delete from teams_membership;
delete from pinax_stripe_card;
delete from pinax_stripe_charge;
delete from pinax_stripe_customer;
delete from django_admin_log;
2026-02-20 16:33:09 +11:00
delete from auth_user where is_staff = false;
```
Set any remaining account `completed_registration` to false.
Add a new Conference entry in Django Admin and update the `CONFERENCE_ID` in pinaxcon/settings.py. Also update the conference dates.
Find and update all uses of 2026 and the conference dates in this codebase.
Update flatpages such as the "/" home page.
Update the Django "site" in the Admin.