aboutsummaryrefslogtreecommitdiff
path: root/lib/sql
Commit message (Collapse)AuthorAge
* lib/sql: Update grant script for recent schema changesJeremy Kerr2020-04-14
| | | | | | | | | | | | | | | | | | This change fixes a few omissions in the grant scripts: - patchrelation is missing from both mysql and postgres scripts; it's only needed for web user access. - event is missing from the web grants on postgres, and the mail grants on mysql. Tested on postgres only. Fixes: 27c2acf56c ("models, templates: Add patch relations") Fixes: 34e3c9c493 ("sql: Update 'grant-all.mysql' script with missing tables") Fixes: 234bc7c316 ("lib/sql: fix permissions for v2.0.0 on postgres") Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Daniel Axtens <dja@axtens.net>
* sql: Fix table listsAli Alnubani2019-09-06
| | | | | | | | | | | | | | The patch adds missing commas in the table lists where missing, and removes where unnecessary. This fixes errors such as the following when feeding the script to psql: psql:lib/sql/grant-all.postgres.sql:37: ERROR: syntax error at or near "patchwork_emailconfirmation" LINE 19: patchwork_emailconfirmation, ... Signed-off-by: Ali Alnubani <alialnu@mellanox.com> Reviewed-by: Stephen Finucane <stephen@that.guru> Fixes: ca0e79d4db34 ("sql: Sort 'grant-all' scripts alphabetically")
* models: Convert Series-Patch relationship to 1:NStephen Finucane2018-10-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Late in the development of the series feature, it was decided that there were advantages to allowing an N:M relationship between series and patches. This would allow us to do things like create complete series where a sole vN patch was sent to a list rather than the full series. After some time using series in the wild, it's apparent that such features are very difficult to implement correctly and will likely never be implemented. As such, it's time to start cleaning up the mess, paving the way for things like an improved tagging feature. There are some significant changes to the model required: - models.py, migrations/0027, migrations/0028, migrations/0029 The migrations make the following changes: 1. - Add 'Patch.series_alt' and 'Patch.number' fields. 2. - Populate the 'Patch.series_alt' and 'Patch.number' fields from their 'SeriesPatch' equivalents. 3. - Remove the 'SeriesPatch' model. - Rename 'Patch.series_alt' to 'Patch.series'. - Change 'Series.cover_letter' to a 'OneToOneField' since a cover letter can no longer be assigned to multiple series. Note that the migrations have to be split into multiple parts as the combined migration raises an OperationalError as below. (1072, "Key column 'series_alt_id' doesn't exist in table") This is due to Django's penchant for creating indexes for newly created fields, as noted here: https://stackoverflow.com/q/35158530/ Aside from the model changes, there are numerous other changes required: - admin.py Reflect model changes for the 'PatchInline' inline used by 'SeriesAdmin' - api/cover.py, api/patch.py Update the 'series' field for the cover letter and patch resources to reflect the model changes. A 'to_representation' function is added in both cases to post-process this field and make it look like a list again. This is necessary to avoid breaking clients. - parser.py Update to reflect the replacement of 'SeriesPatch' with 'Patch'. - signals.py Update to filter on changes to 'Patch' instead of 'SeriesPatch'. This requires some reworking due to how we set these fields now, as we can no longer receive on 'post_save' signals for 'SeriesPatch' and must instead watch for 'pre_save' on 'Patch', which is what we do for delegate and state changes on same. - templates/patchwork/*.html Remove logic that handled multiple series in favour of the (simpler) single series logic. - tests/* Modify the 'create_series_patch' helper to reflect the removal of the 'SeriesPatch' model. This entire helper will be removed in a future change. Improve some tests to cover edge cases that were highlighted during development Unfortunately, all of the above changes must go in at the same time, otherwise we end up with either (a) broken views, API etc. or (b) split brain because we need to keep the new single-series fields alongside the older multi-series fields and models while we rework the views. It's unfortunate but there's not much to be done here. Signed-off-by: Stephen Finucane <stephen@that.guru> Tested-by: Daniel Axtens <dja@axtens.net>
* sql: Update 'grant-all.mysql' script with missing tablesStephen Finucane2018-06-02
| | | | | | | | | These were all introduced in 2.0 and while the postgreSQL script was fixed in commit 234bc7c3, the MySQL one was not. This suggests either (a) no one is using this or (b) people are carrying local changes but for now we just resolve the issues. Signed-off-by: Stephen Finucane <stephen@that.guru>
* sql: Sort 'grant-all' scripts alphabeticallyStephen Finucane2018-05-30
| | | | | | This makes it easier to compare to the output of 'show tables'. Signed-off-by: Stephen Finucane <stephen@that.guru>
* sql: Remove old migration scriptsStephen Finucane2018-01-04
| | | | | | | These have not been used since v1.0 and we don't expect users to jump straight from pre-v1.0 to post-v2.0. Remove them. Signed-off-by: Stephen Finucane <stephen@that.guru>
* lib/sql: fix permissions for v2.0.0 on postgresJeremy Kerr2017-08-31
| | | | | | | | | | | | | | | Some tables are no longer present, and others that are used by the web interface and mail parser need access permissions added. This change was required to get patchwork going on patchwork.ozlabs.org; there may be other permissions required, that we haven't hit yet. So, some review would be good here. Also: it's unlikely that we need DELETE for the mail parser, but I'm not confident enough to remove that at the moment. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Reviewed-by: Stephen Finucane <stephen@that.guru>
* sql: Update permissions on grant-all scriptsStephen Finucane2017-04-15
| | | | | | | Allow access to Submission, CoverLetter, Series, SeriesReference and SeriesPatch. Signed-off-by: Stephen Finucane <stephen@that.guru>
* sql: Fix spelling mistakes and typosEric Engestrom2016-05-09
| | | | | Signed-off-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Stephen Finucane <stephen.finucane@intel.com>
* Update permissions on grant-all scriptsJeremy Kerr2016-03-29
| | | | | | | We need access to Check & Delegationrule. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Acked-by: Stephen Finucane <stephen.finucane@intel.com>
* Add patch tag infrastructureJeremy Kerr2015-05-28
| | | | | | | | | | | | | | | | | | | | | This change add patch 'tags', eg 'Acked-by' / 'Reviewed-by', etc., to patchwork. Tag parsing is implemented in the patch parser's extract_tags function, which returns a Counter object of the tags in a comment. These are stored in the PatchTag (keyed to Tag) objects associated with each patch. We need to ensure that the main patch lists do not cause per-patch queries on the Patch.tags ManyToManyField (this would result in ~500 queries per page), so we introduce a new QuerySet (and Manager) for Patch, adding a with_tag_counts() method to populate the tag counts in a single query. As users may be migrating from previous patchwork versions (ie, with no tag counts in the database), we add a 'retag' management command. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* migration: Add cleanup-people migration scriptJeremy Kerr2014-05-08
| | | | | | | Now that we only create Person object once the User has been confirmed, we can clean up unused Person objects from the database. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* lib/sql: remove references to auth_message modelJeremy Kerr2014-04-22
| | | | | | The Message model was deprecated in 1.4, and removed in 1.6 Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* lib/sql/migration: Fix column names for MySQL/MariaDBRalf Baechle2013-10-13
| | | | | | | | | | | | | | | | | The first issue is that patchwork was no longer accepting new patches via the apps/patchwork/bin/parsemail.sh script. When I was trying to invoke it manually, it only printed "no project found". I was able to figure out that this was caused by changes to the database scheme which are taken care of by the two SQL scripts: lib/sql/migration/012-project-add-columns.sql lib/sql/migration/013-bundle-names.sql The catch - these first script don't run with MySQL - or rather MariaDB that Fedora has switched to. MariaDB doesn't like the quotes around the table and column names. Patch below. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* sql: remove non-existing auth_message tableFlorian Fainelli2013-10-04
| | | | | | | | During a recent installation the grant-all MySQL script was erroring out because the "auth_message" table does not exist, remove it. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* sql: update grant-all.mysql.sqlFlorian Fainelli2013-10-04
| | | | | | | | The MySQL grant all script has a typo on the table "patchwork_bundle_patches" vs "patchwork_bundlepatch" update that. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* bundles: Don't allow slashes in bundle namesJeremy Kerr2013-04-20
| | | | | | | | Because bundle names are used in URLs, we don't want slashes in them. Include a SQL migration script. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* Add URL and SCM data to projectsSimo Sorce2012-11-15
| | | | | | | | | | | | | | | This allows us to display friendly links to the project website, web SCM UI and SCM URL. For example for the patchwork project these could be set to: web_url: http://jk.ozlabs.org/projects/patchwork/ scm_url: git://ozlabs.org/home/jk/git/patchwork webscm_url: http://git.ozlabs.org/?p=patchwork;a=tree Requires a DB schema upgrade Signed-off-by: Simo Sorce <idra@samba.org> Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* Fix grant scriptSimo Sorce2012-10-25
| | | | | | | | patchwork_patchchangenotification_id_seq does not exist, so running this script simply fails with a rollback Signed-off-by: Simo Sorce <idra@samba.org> Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* sql: remove development migration scriptJeremy Kerr2011-12-08
| | | | | | | The projectmaintainer heirachy hasn't been implemented, so we don't need the migration script yet. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* models: Add PatchChangeNotification and record patch state changesJeremy Kerr2011-04-14
| | | | | | | | | Add a PatchChangeNotification model to keep track of changes to a patch's state. Hook this up to Patch's pre_save signal. Requires a DB schema upgrade. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* Add email opt-out systemJeremy Kerr2011-04-14
| | | | | | | | | | | We're going to start generating emails on patchwork updates, so firstly allow people to opt-out of all patchwork communications. We do this with a 'mail settings' interface, allowing non-registered users to set preferences on their email address. Logged-in users can do this through the user profile view. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* registration: use EmailConfimation rather than separate registration appJeremy Kerr2011-04-14
| | | | | | | | | | Since we have infrastructure for email confirmations, we no longer need the separate registration app. Requires a migration script, which will delete all inactive users, including those newly added and pending confirmation. Use carefully. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* Use generic email confirmation objectJeremy Kerr2011-04-14
| | | | | | | | | | | | | Rather than having a UserPerson-specific confirmation, add an EmailConfirmation object to allow multiple types of confirmations (eg, opt-out requests in future). To do this, we use a view (patchwork.views.confirm) that will call the type-specific view with the confirmation object. Also, add tests to check that the User/Person linkage system works. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* Add support for git-pull requestsJeremy Kerr2010-11-01
| | | | | | | | | Add a a pull_url to the Patch object, and update the parser to look for git-pull style emails. Requires SQL migration script. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* sql: Add uncommitted migration scriptsJeremy Kerr2010-08-10
| | | | Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* Adjust postgres "grant all" script to new name of bundle tableJunio C Hamano2009-11-23
| | | | | | | | | | | | | | Since c105cb0 (Initial bundle reordering support, 2009-01-29), the patchwork_bundle_patches table and its associated id sequence does not exist. The script to grant appropriate privileges was not updated when this change was made, and causes the set-up procedure described in docs/INSTALL to fail. This change adjust the script to grant appropriate access rights to match the change in the DB schema. Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* migration: fix whitespaceJeremy Kerr2009-02-27
| | | | Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* migration: reset bundlepatch sequence on setupJeremy Kerr2009-02-27
| | | | Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* [sql] Fix up bundle-reorder migration scriptJeremy Kerr2009-02-10
| | | | | | | We need to add grants for the new table, and drop the old to prevent reference constraint errors. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* [sql] Perserve bundle ordering in bundle reorder migration scriptJeremy Kerr2009-02-08
| | | | Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* Normalise order numbers in bundle-ordering migration SQLJeremy Kerr2009-02-07
| | | | Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* Complete bundle ordering migration scriptJeremy Kerr2009-02-07
| | | | Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* Initial bundle reordering supportJeremy Kerr2009-01-29
| | | | | | | | | todo: * implement ajax reorder api * finish migration script * order patches in bundle view Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* [models] Make patches unique on (msgid, project), not just (msgid)Jeremy Kerr2008-10-29
| | | | | | | | | | On patchwork.ozlabs.org, we may see multiple patches for different projects, but with the same message-id. We want these patches to show up on both projects, so we need to change the current UNIQUE contstraint on msgid. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* [sql] use separate grant-all scripts for postgresql and mysqlJeremy Kerr2008-10-09
| | | | | | | | | | Mysql doesn't support granting to multiple tables, and requires a different username format. Would be nice to code the permissions somewhere, then generate the grant statements as required. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* Don't just rely on random for UserPersonConfirmation keysJeremy Kerr2008-09-11
| | | | | | | | | | | It looks like we're getting identical keys generated for confirmation keys. Problem has been reported to django, but in the meantime, salt with the user and email details, then sha1 to give the final key. This requires an increase in the field size for key, migration script included. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* Use hex strings for hash valuesJeremy Kerr2008-09-10
| | | | | | | | | | Binary strings a too hard to manage in DB queries and XMLRPC methods, as we get all kinds of encoding issues. Change HashField to use a hex string, and add a migration script for db updates. The patches should be rehashed after migration. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* Add DB permissions for registration appJeremy Kerr2008-08-22
| | | | Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* Get parsemail scripts goingJeremy Kerr2008-08-21
| | | | | | A couple of fixes, plus required permissions in the grant-all script. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* Inital commitJeremy Kerr2008-08-21
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>