Hey Christian, One of the previous admins told me that we were using reviewboard pre 1.0 - this may explain where the random sql came from.
Can I get a quote on how much a support contract would cost? -Zach On Sat, Apr 4, 2015 at 1:35 AM, Christian Hammond <christ...@beanbaginc.com> wrote: > Hey Zach, > > I basically have this fixed, and will be getting it through a review cycle > and ready for a new django_evolution release, but I have some concerns > about your database. It seems to be missing a couple major releases worth > of evolutions. > > The SQL you found seems to match the missing evolution, so I'm guessing > someone's been applying them by hand? > > It's absolutely crucial that this be fixed for an upgrade, or things can > end up quickly in a bad state. Future releases will be increasingly harder > to upgrade to. > > There's basically two options here: > > 1) You can try installing a brand new site, using a brand new database, in > order to generate a correct set of evolution data. You'd then want to copy > the contents of these two tables (the same ones you sent me) from the that > new database to the one you want to upgrade, completely replacing the > copies in that database. > > 2) We can do this for you and deal with any other issues that come up > along the way, and fully repair your database. We'd have you up and running > under 2.0 quick. However, we can only do this under a support contract. > > I'll let you know when we have the django_evolution release out. I can > also send you an early build to test, if you let me know what version of > Python you're using. > > Christian > > > -- > Christian Hammond - christ...@beanbaginc.com > Review Board - http://www.reviewboard.org > Beanbag, Inc. - http://www.beanbaginc.com > > On Fri, Apr 3, 2015 at 8:47 PM, Christian Hammond < > christ...@beanbaginc.com> wrote: > >> I believe I've isolated the problem to a bug in django-evolution. Haven't >> figured out the exact cause just yet, but working on it! >> >> Christian >> >> -- >> Christian Hammond - christ...@beanbaginc.com >> Review Board - http://www.reviewboard.org >> Beanbag, Inc. - http://www.beanbaginc.com >> >> On Fri, Apr 3, 2015 at 7:35 PM, Christian Hammond < >> christ...@beanbaginc.com> wrote: >> >>> Hi Zach, >>> >>> I'm sorry, I haven't had any time to make progress on this. Been busy >>> with some of our premium support customers, student program, and a few >>> other things. I have a couple hours I can spend right now, so I'll see if >>> anything stands out. >>> >>> Where did those SQL statements come from? >>> >>> FWIW, Django Evolution has been around since the 1.0 alphas. >>> >>> Christian >>> >>> -- >>> Christian Hammond - christ...@beanbaginc.com >>> Review Board - http://www.reviewboard.org >>> Beanbag, Inc. - http://www.beanbaginc.com >>> >>> On Thu, Apr 2, 2015 at 8:13 AM, Zach Auclair <zach...@gmail.com> wrote: >>> >>>> Hey Christian, >>>> >>>> Have you been able to make any progress on debugging this? I just >>>> wanted to point out that I believe before the current version that to >>>> upgrade to the current version we were on long ago, our previous maintainer >>>> may have run some migrations by hand (before this had django_evolutions?). >>>> >>>> Some of the sql I found: >>>> >>>> ``` >>>> CREATE INDEX "django_session_expire_date" ON "django_session" >>>> ("expire_date"); >>>> >>>> ALTER TABLE "diffviewer_filediff" ALTER COLUMN "source_file" TYPE >>>> varchar(1024) USING CAST("source_file" as varchar(1024)); >>>> ALTER TABLE "diffviewer_filediff" ALTER COLUMN "dest_file" TYPE >>>> varchar(1024) USING CAST("dest_file" as varchar(1024)); >>>> ALTER TABLE "diffviewer_diffset" ADD COLUMN "basedir" varchar(256) ; >>>> UPDATE "diffviewer_diffset" SET "basedir" = '' WHERE "basedir" IS NULL; >>>> ALTER TABLE "diffviewer_diffset" ALTER COLUMN "basedir" SET NOT NULL; >>>> ALTER TABLE "diffviewer_filediff" ADD COLUMN "status" varchar(1) ; >>>> UPDATE "diffviewer_filediff" SET "status" = 'M' WHERE "status" IS NULL; >>>> ALTER TABLE "diffviewer_filediff" ALTER COLUMN "status" SET NOT NULL; >>>> ALTER TABLE "reviews_reviewrequest" ADD COLUMN "last_review_timestamp" >>>> timestamp with time zone NULL ; >>>> >>>> UPDATE reviews_reviewrequest >>>> SET last_review_timestamp = ( >>>> SELECT reviews_review.timestamp >>>> FROM reviews_review >>>> WHERE reviews_review.review_request_id = >>>> reviews_reviewrequest.id >>>> AND reviews_review.public >>>> ORDER BY reviews_review.timestamp DESC >>>> LIMIT 1); >>>> >>>> ALTER TABLE "reviews_reviewrequest" ADD COLUMN "shipit_count" integer ; >>>> UPDATE "reviews_reviewrequest" SET "shipit_count" = 0 WHERE >>>> "shipit_count" IS NULL; >>>> >>>> UPDATE reviews_reviewrequest >>>> SET shipit_count = ( >>>> SELECT COUNT(*) >>>> FROM reviews_review >>>> WHERE reviews_review.review_request_id = >>>> reviews_reviewrequest.id >>>> AND reviews_review.public >>>> AND reviews_review.ship_it >>>> AND reviews_review.base_reply_to_id is NULL); >>>> >>>> CREATE TABLE "reviews_defaultreviewer_repository" ( >>>> "id" serial NOT NULL PRIMARY KEY, >>>> "defaultreviewer_id" integer NOT NULL, >>>> "repository_id" integer NOT NULL, >>>> UNIQUE ("defaultreviewer_id", "repository_id") >>>> ) >>>> ; >>>> ALTER TABLE "reviews_defaultreviewer_repository" ADD CONSTRAINT >>>> "defaultreviewer_id_refs_id_51486bbd" FOREIGN KEY ("defaultreviewer_id") >>>> REFERENCES "reviews_defaultreviewer" ("id") DEFERRABLE INITIALLY DEFERRED; >>>> ALTER TABLE "reviews_defaultreviewer_repository" ADD CONSTRAINT >>>> "repository_id_refs_id_8161d2ae" FOREIGN KEY ("repository_id") REFERENCES >>>> "scmtools_repository" ("id") DEFERRABLE INITIALLY DEFERRED; >>>> ALTER TABLE "reviews_reviewrequest" ALTER COLUMN "repository_id" DROP >>>> NOT NULL; >>>> ALTER TABLE "scmtools_repository" ADD COLUMN "raw_file_url" >>>> varchar(128) ; >>>> UPDATE "scmtools_repository" SET "raw_file_url" = '' WHERE >>>> "raw_file_url" IS NULL; >>>> ALTER TABLE "scmtools_repository" ALTER COLUMN "raw_file_url" SET NOT >>>> NULL; >>>> ALTER TABLE "scmtools_repository" ADD COLUMN "visible" boolean ; >>>> UPDATE "scmtools_repository" SET "visible" = True WHERE "visible" IS >>>> NULL; >>>> ALTER TABLE "scmtools_repository" ALTER COLUMN "visible" SET NOT NULL; >>>> ALTER TABLE "scmtools_repository" ALTER COLUMN "path" TYPE varchar(255) >>>> USING CAST("path" as varchar(255)); >>>> ALTER TABLE "scmtools_repository" ALTER COLUMN "mirror_path" TYPE >>>> varchar(255) USING CAST("mirror_path" as varchar(255)); >>>> ALTER TABLE "scmtools_repository" ALTER COLUMN "raw_file_url" TYPE >>>> varchar(255) USING CAST("raw_file_url" as varchar(255)); >>>> >>>> update siteconfig_siteconfiguration set settings='[redacted]'; >>>> ``` >>>> >>>> -Zach >>>> >>>> On Wed, Feb 11, 2015 at 5:18 PM, Zach Auclair <zach...@gmail.com> >>>> wrote: >>>> >>>>> Hey Christian, >>>>> >>>>> I ran... >>>>> >>>>> `pg_dump --host dbhost --dbname reviewboard --username reviewboard >>>>> --schema-only > schema-recreate.sql` >>>>> `pg_dump --data-only --table django_project_version --table >>>>> django_evolution --host dbhost --dbname reviewboard --username reviewboard >>>>> > django-table-data-import.sql` >>>>> >>>>> ... and have attached the data. >>>>> >>>>> Please let me know if you have a more explicit / different way you >>>>> want the data. >>>>> >>>>> -Zach >>>>> >>>>> On Wed, Feb 11, 2015 at 4:22 PM, Christian Hammond < >>>>> christ...@beanbaginc.com> wrote: >>>>> >>>>>> Hi Zach, >>>>>> >>>>>> I wouldn't need any actual confidential data. Just the table schema >>>>>> and the contents of the django_evolution and django_project_version >>>>>> tables >>>>>> (which solely contain information on the schema, and nothing confidential >>>>>> of any sort). >>>>>> >>>>>> Christian >>>>>> >>>>>> -- >>>>>> Christian Hammond - christ...@beanbaginc.com >>>>>> Review Board - https://www.reviewboard.org >>>>>> Beanbag, Inc. - https://www.beanbaginc.com >>>>>> >>>>>> -----Original Message----- >>>>>> From: Zach <zach...@gmail.com> >>>>>> Reply: Zach <zach...@gmail.com>> >>>>>> Date: February 11, 2015 at 1:20:29 PM >>>>>> To: reviewboard@googlegroups.com <reviewboard@googlegroups.com>> >>>>>> Cc: christ...@beanbaginc.com <christ...@beanbaginc.com>> >>>>>> Subject: Re: Issue Migrating Database from 1.5.5 to 2.0.5 (model >>>>>> updates fail) >>>>>> >>>>>> > Hey Christian, >>>>>> > >>>>>> > Sorry for the long delay between responses - I've had to put this >>>>>> project >>>>>> > on the back-burner for the time being. I am extremely appreciative >>>>>> of the >>>>>> > time you've been able to spend trying to help us with this issue >>>>>> (after >>>>>> > all, we would love to use the new reviewboard 2.X with gitlab!). >>>>>> > >>>>>> > In terms of the raw dump, what tables actually need to have rows in >>>>>> them? I >>>>>> > ask this because I will have to check with we are allowed to send >>>>>> some of >>>>>> > our information (if it's anything other than the table definition, >>>>>> and the >>>>>> > django rows / reviewboard settings, etc). >>>>>> > >>>>>> > -Zach >>>>>> > >>>>>> > On Tuesday, August 26, 2014 at 5:09:04 AM UTC-4, Christian Hammond >>>>>> wrote: >>>>>> > > >>>>>> > > Hi Zach, >>>>>> > > >>>>>> > > I know this isn't going quick. We had a big upgrade to >>>>>> RBCommons.com to >>>>>> > > prepare for and execute, and a number of premium support tickets >>>>>> we've been >>>>>> > > dealing with, so I'm behind on the community list. >>>>>> > > >>>>>> > > I took a look at the dumps, but unfortunately they're not useful >>>>>> to me. >>>>>> > > I'll need actual raw SQL dumps that I can directly import into a >>>>>> Postgres >>>>>> > > database. Would you be able to provide an importable SQL dump? >>>>>> > > >>>>>> > > - Christian >>>>>> > > >>>>>> > > -- >>>>>> > > Christian Hammond - chri...@beanbaginc.com >>>>>> > > Review Board - http://www.reviewboard.org >>>>>> > > Beanbag, Inc. - http://www.beanbaginc.com >>>>>> > > >>>>>> > > >>>>>> > > On Thu, Aug 21, 2014 at 3:03 PM, Zach Auclair > > > wrote: >>>>>> > > >>>>>> > >> Christian, >>>>>> > >> >>>>>> > >> I've attached the data that you requested. >>>>>> > >> >>>>>> > >> -Zach >>>>>> > >> >>>>>> > >> >>>>>> > >> On Thu, Aug 21, 2014 at 4:41 PM, Christian Hammond < >>>>>> > >> chri...@beanbaginc.com > wrote: >>>>>> > >> >>>>>> > >>> Hi Zach, >>>>>> > >>> >>>>>> > >>> Sorry, I haven’t had a chance yet. >>>>>> > >>> >>>>>> > >>> I just glanced through and the schema does look correct, as >>>>>> does the >>>>>> > >>> list of applied evolutions. Can you get me the contents of your >>>>>> > >>> django_project_version and django_evolution tables? That’ll >>>>>> give me a >>>>>> > >>> better understanding of how Django Evolution thinks the world >>>>>> looks. >>>>>> > >>> >>>>>> > >>> Christian >>>>>> > >>> >>>>>> > >>> -- >>>>>> > >>> Christian Hammond - chri...@beanbaginc.com >>>>>> > >>> Review Board - http://www.reviewboard.org >>>>>> > >>> Beanbag, Inc. - http://www.beanbaginc.com >>>>>> > >>> >>>>>> > >>> On August 21, 2014 at 1:24:01 PM, Zach Auclair ( >>>>>> zac...@gmail.com >>>>>> > >>> ) wrote: >>>>>> > >>> >>>>>> > >>> Hey Christian, >>>>>> > >>> >>>>>> > >>> Have you had a chance to look into this? Is there any other >>>>>> information >>>>>> > >>> I can get you? >>>>>> > >>> >>>>>> > >>> -Zach >>>>>> > >>> >>>>>> > >>> >>>>>> > >>> >>>>>> > >>> On Fri, Aug 15, 2014 at 10:11 PM, Zach Auclair > >>> > wrote: >>>>>> > >>> >>>>>> > >>>> Hi Chris, >>>>>> > >>>> >>>>>> > >>>> The output of the "list-evolutions" command is actually >>>>>> included in my >>>>>> > >>>> last paragraph in the original post - see "*... in >>>>>> "list-evolutions" >>>>>> > >>>> form.*" >>>>>> > >>>> >>>>>> > >>>> I have attached the current schema generated by `pg_dump >>>>>> --schema-only >>>>>> > >>>> ...`. >>>>>> > >>>> >>>>>> > >>>> >>>>>> > >>>> On Fri, Aug 15, 2014 at 4:37 PM, Christian Hammond < >>>>>> > >>>> chri...@beanbaginc.com > wrote: >>>>>> > >>>> >>>>>> > >>>>> Hmm, that shouldn’t be happening. Can you run this and show >>>>>> me what >>>>>> > >>>>> you see: >>>>>> > >>>>> >>>>>> > >>>>> $ rb-site manage /path/to/site list-evolutions >>>>>> > >>>>> >>>>>> > >>>>> Also, can you dump the schema of your database and attach it? >>>>>> > >>>>> >>>>>> > >>>>> - Christian >>>>>> > >>>>> >>>>>> > >>>>> -- >>>>>> > >>>>> Christian Hammond - chri...@beanbaginc.com >>>>>> > >>>>> Review Board - http://www.reviewboard.org >>>>>> > >>>>> Beanbag, Inc. - http://www.beanbaginc.com >>>>>> > >>>>> >>>>>> > >>>>> On August 15, 2014 at 12:11:45 PM, Zach (zac...@gmail.com >>>>>> > >>>>> ) wrote: >>>>>> > >>>>> >>>>>> > >>>>> I'm trying to "rb-site upgrade" an old 1.5.5 database to >>>>>> 2.0.5. >>>>>> > >>>>> >>>>>> > >>>>> *This fails with:* >>>>>> > >>>>> >>>>>> > >>>>> Rebuilding directory structure >>>>>> > >>>>> Updating database. This may take a while. >>>>>> > >>>>> >>>>>> > >>>>> The log output below, including warnings and errors, >>>>>> > >>>>> can be ignored unless upgrade fails. >>>>>> > >>>>> >>>>>> > >>>>> ------------------ ------------------ >>>>>> > >>>>> Creating tables ... >>>>>> > >>>>> There are unapplied evolutions for auth. >>>>>> > >>>>> There are unapplied evolutions for contenttypes. >>>>>> > >>>>> There are unapplied evolutions for sessions. >>>>>> > >>>>> There are unapplied evolutions for accounts. >>>>>> > >>>>> There are unapplied evolutions for changedescs. >>>>>> > >>>>> There are unapplied evolutions for diffviewer. >>>>>> > >>>>> There are unapplied evolutions for reviews. >>>>>> > >>>>> There are unapplied evolutions for scmtools. >>>>>> > >>>>> Project signature has changed - an evolution is required >>>>>> > >>>>> Installing custom SQL ... >>>>>> > >>>>> Installing indexes ... >>>>>> > >>>>> Installed 0 object(s) from 0 fixture(s) >>>>>> > >>>>> The stored evolutions do not completely resolve all model >>>>>> changes. >>>>>> > >>>>> >>>>>> > >>>>> Run `./manage.py evolve --hint` to see a suggestion for the >>>>>> changes >>>>>> > >>>>> required. >>>>>> > >>>>> >>>>>> > >>>>> The following are the changes that could not be resolved: >>>>>> > >>>>> The application markup has been deleted >>>>>> > >>>>> In model reviews.DefaultReviewer: >>>>>> > >>>>> In field 'repository': >>>>>> > >>>>> Property 'null' has changed >>>>>> > >>>>> In model reviews.ReviewRequest: >>>>>> > >>>>> In field 'repository': >>>>>> > >>>>> Property 'null' has changed >>>>>> > >>>>> CommandError: Your models contain changes that Django >>>>>> Evolution cannot >>>>>> > >>>>> resolve automatically. >>>>>> > >>>>> >>>>>> > >>>>> >>>>>> > >>>>> *The suggested --hint's are:* >>>>>> > >>>>> >>>>>> > >>>>> #----- Evolution for auth >>>>>> > >>>>> from django_evolution.mutations import ChangeMeta, DeleteModel >>>>>> > >>>>> >>>>>> > >>>>> >>>>>> > >>>>> MUTATIONS = [ >>>>>> > >>>>> ChangeMeta('Permission', 'unique_together', ((u'content_type', >>>>>> > >>>>> u'codename'),)), >>>>>> > >>>>> DeleteModel('Message') >>>>>> > >>>>> ] >>>>>> > >>>>> #---------------------- >>>>>> > >>>>> #----- Evolution for contenttypes >>>>>> > >>>>> from django_evolution.mutations import ChangeMeta >>>>>> > >>>>> >>>>>> > >>>>> >>>>>> > >>>>> MUTATIONS = [ >>>>>> > >>>>> ChangeMeta('ContentType', 'unique_together', (('app_label', >>>>>> > >>>>> 'model'),)) >>>>>> > >>>>> ] >>>>>> > >>>>> #---------------------- >>>>>> > >>>>> #----- Evolution for sessions >>>>>> > >>>>> from django_evolution.mutations import ChangeField >>>>>> > >>>>> >>>>>> > >>>>> >>>>>> > >>>>> MUTATIONS = [ >>>>>> > >>>>> ChangeField('Session', 'expire_date', initial=None, >>>>>> db_index=True) >>>>>> > >>>>> ] >>>>>> > >>>>> #---------------------- >>>>>> > >>>>> #----- Evolution for accounts >>>>>> > >>>>> from django_evolution.mutations import AddField, ChangeMeta, >>>>>> > >>>>> DeleteField >>>>>> > >>>>> from django.db import models >>>>>> > >>>>> from djblets.db.fields import JSONField >>>>>> > >>>>> >>>>>> > >>>>> >>>>>> > >>>>> MUTATIONS = [ >>>>>> > >>>>> AddField('Profile', 'should_send_email', models.BooleanField, >>>>>> > >>>>> initial=True), >>>>>> > >>>>> AddField('Profile', 'timezone', models.CharField, >>>>>> initial=u'UTC', >>>>>> > >>>>> max_length=30), >>>>>> > >>>>> AddField('Profile', 'open_an_issue', models.BooleanField, >>>>>> > >>>>> initial=True), >>>>>> > >>>>> AddField('Profile', 'extra_data', JSONField, null=True), >>>>>> > >>>>> AddField('Profile', 'show_closed', models.BooleanField, >>>>>> > >>>>> initial=True), >>>>>> > >>>>> AddField('Profile', 'is_private', models.BooleanField, >>>>>> > >>>>> initial=False), >>>>>> > >>>>> DeleteField('Profile', 'show_submitted'), >>>>>> > >>>>> ChangeMeta('ReviewRequestVisit', 'unique_together', ((u'user', >>>>>> > >>>>> u'review_request'),)) >>>>>> > >>>>> ] >>>>>> > >>>>> #---------------------- >>>>>> > >>>>> #----- Evolution for changedescs >>>>>> > >>>>> from django_evolution.mutations import AddField >>>>>> > >>>>> from django.db import models >>>>>> > >>>>> >>>>>> > >>>>> >>>>>> > >>>>> MUTATIONS = [ >>>>>> > >>>>> AddField('ChangeDescription', 'rich_text', >>>>>> models.BooleanField, >>>>>> > >>>>> initial=True) >>>>>> > >>>>> ] >>>>>> > >>>>> #---------------------- >>>>>> > >>>>> CommandError: Cannot use hinted evolution: AddField or >>>>>> ChangeField >>>>>> > >>>>> mutation for 'FileDiff.status' in 'diffviewer' requires >>>>>> user-specified >>>>>> > >>>>> initial value. >>>>>> > >>>>> >>>>>> > >>>>> *The completed evolutions are:* >>>>>> > >>>>> >>>>>> > >>>>> reviewboard=> select * from django_evolution; >>>>>> > >>>>> id | version_id | app_label | label >>>>>> > >>>>> >>>>>> > >>>>> >>>>>> ----+------------+-------------+--------------------------------------------- >>>>>> > >>>>> 1 | 4 | diffviewer | add_parent_diffs >>>>>> > >>>>> 2 | 4 | reviews | change_descriptions >>>>>> > >>>>> 3 | 4 | scmtools | bugzilla_url_charfield >>>>>> > >>>>> 4 | 5 | attachments | file_attachment_orig_filename >>>>>> > >>>>> 5 | 5 | attachments | file_attachment_file_max_length_512 >>>>>> > >>>>> 6 | 5 | attachments | file_attachment_repo_info >>>>>> > >>>>> 7 | 5 | attachments | file_attachment_repo_path_no_index >>>>>> > >>>>> 8 | 5 | attachments | >>>>>> > >>>>> file_attachment_repo_revision_max_length_64 >>>>>> > >>>>> 9 | 5 | site | localsite_public >>>>>> > >>>>> 10 | 5 | hostingsvcs | account_hosting_url >>>>>> > >>>>> 11 | 5 | hostingsvcs | account_hosting_url_max_length_255 >>>>>> > >>>>> 12 | 5 | hostingsvcs | account_unique_together_baseline >>>>>> > >>>>> (12 rows) >>>>>> > >>>>> >>>>>> > >>>>> reviewboard=> \d django_evolution >>>>>> > >>>>> Table "public.django_evolution" >>>>>> > >>>>> Column | Type | >>>>>> > >>>>> Modifiers >>>>>> > >>>>> >>>>>> > >>>>> >>>>>> ------------+------------------------+--------------------------------------------------------------- >>>>>> > >>>>> id | integer | not null default >>>>>> > >>>>> nextval('django_evolution_id_seq'::regclass) >>>>>> > >>>>> version_id | integer | not null >>>>>> > >>>>> app_label | character varying(200) | not null >>>>>> > >>>>> label | character varying(100) | not null >>>>>> > >>>>> Indexes: >>>>>> > >>>>> "django_evolution_pkey" PRIMARY KEY, btree (id) >>>>>> > >>>>> "django_evolution_version_id" btree (version_id) >>>>>> > >>>>> Foreign-key constraints: >>>>>> > >>>>> "django_evolution_version_id_fkey" FOREIGN KEY (version_id) >>>>>> > >>>>> REFERENCES django_project_version(id) DEFERRABLE INITIALLY >>>>>> DEFERRED >>>>>> > >>>>> >>>>>> > >>>>> reviewboard=> >>>>>> > >>>>> >>>>>> > >>>>> *... in "list-evolutions" form:* >>>>>> > >>>>> >>>>>> > >>>>> Applied evolutions for 'attachments': >>>>>> > >>>>> file_attachment_orig_filename >>>>>> > >>>>> file_attachment_file_max_length_512 >>>>>> > >>>>> file_attachment_repo_info >>>>>> > >>>>> file_attachment_repo_path_no_index >>>>>> > >>>>> file_attachment_repo_revision_max_length_64 >>>>>> > >>>>> >>>>>> > >>>>> Applied evolutions for 'diffviewer': >>>>>> > >>>>> add_parent_diffs >>>>>> > >>>>> >>>>>> > >>>>> Applied evolutions for 'hostingsvcs': >>>>>> > >>>>> account_hosting_url >>>>>> > >>>>> account_hosting_url_max_length_255 >>>>>> > >>>>> account_unique_together_baseline >>>>>> > >>>>> >>>>>> > >>>>> Applied evolutions for 'reviews': >>>>>> > >>>>> change_descriptions >>>>>> > >>>>> >>>>>> > >>>>> Applied evolutions for 'scmtools': >>>>>> > >>>>> bugzilla_url_charfield >>>>>> > >>>>> >>>>>> > >>>>> Applied evolutions for 'site': >>>>>> > >>>>> localsite_public >>>>>> > >>>>> >>>>>> > >>>>> >>>>>> > >>>>> >>>>>> > >>>>> -- >>>>>> > >>>>> Get the Review Board Power Pack at >>>>>> > >>>>> http://www.reviewboard.org/powerpack/ >>>>>> > >>>>> --- >>>>>> > >>>>> Sign up for Review Board hosting at RBCommons: >>>>>> https://rbcommons.com/ >>>>>> > >>>>> --- >>>>>> > >>>>> Happy user? Let us know at http://www.reviewboard.org/users/ >>>>>> > >>>>> --- >>>>>> > >>>>> You received this message because you are subscribed to the >>>>>> Google >>>>>> > >>>>> Groups "reviewboard" group. >>>>>> > >>>>> To unsubscribe from this group and stop receiving emails from >>>>>> it, send >>>>>> > >>>>> an email to reviewboard...@googlegroups.com . >>>>>> > >>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> > >>>>> >>>>>> > >>>>> >>>>>> > >>>> >>>>>> > >>> >>>>>> > >> -- >>>>>> > >> Get the Review Board Power Pack at >>>>>> http://www.reviewboard.org/powerpack/ >>>>>> > >> --- >>>>>> > >> Sign up for Review Board hosting at RBCommons: >>>>>> https://rbcommons.com/ >>>>>> > >> --- >>>>>> > >> Happy user? Let us know at http://www.reviewboard.org/users/ >>>>>> > >> --- >>>>>> > >> You received this message because you are subscribed to the >>>>>> Google Groups >>>>>> > >> "reviewboard" group. >>>>>> > >> To unsubscribe from this group and stop receiving emails from >>>>>> it, send an >>>>>> > >> email to reviewboard...@googlegroups.com . >>>>>> > >> For more options, visit https://groups.google.com/d/optout. >>>>>> > >> >>>>>> > > >>>>>> > > >>>>>> >>>>>> >>>>> >>>> >>> >> > -- Supercharge your Review Board with Power Pack: https://www.reviewboard.org/powerpack/ Want us to host Review Board for you? Check out RBCommons: https://rbcommons.com/ Happy user? Let us know! https://www.reviewboard.org/users/ --- You received this message because you are subscribed to the Google Groups "reviewboard" group. To unsubscribe from this group and stop receiving emails from it, send an email to reviewboard+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.