Thanks Glen!

I tested the migration against MySQL. I ran the migration SQL script
manually and it worked (with the fixes that I just committed). I was able
to bring up Roller and things look OK.

One fix was to add a new #dropForeignKey() macro because the drop foreign
key syntax is different from drop index, at least on MySQL. Also, I
commented out the following, which causes an error on MySQL:

   -- following does not work on MySQL
   -- alter table custom_template_rendition add constraint ctr_templateid_fk
   --    foreign key ( templateid ) references weblog_custom_template( id )
 ;

I have not yet been able to figure out why that causes an error.

Next, I'll test with the ASF blogs.

- Dave



On Fri, Jul 25, 2014 at 11:35 PM, Glen Mazza <glen.ma...@gmail.com> wrote:

> Oops, sorry I missed a FK constraint on custom_template_rendition's
> templateid column pointing back to weblog_custom_template's id.  I just put
> that in, both the 500-to-510 upgrade script and in createdb.vm.  There
> should be no migration problems with this, because child table
> custom_template_rendition doesn't exist in 5.0.x.
>
> Data model frozen again.  :)
>
> Glen
>
>
> On 7/24/2014 6:40 PM, Glen Mazza wrote:
>
>> OK, I'm finished with all database changes, we can have our schema
>> freeze.  :)   The Weblog.customstylesheet column is gone.  The 5.0.4 -> 5.1
>> upgrade process will mark custom stylesheets from custom themes with a
>> "STYLESHEET" action in weblog_custom_template, so Roller 5.1 can easily
>> identify them. As for custom stylesheets from shared themes, the upgrade
>> process can't switch them from custom -> stylesheet (the necessary data for
>> that isn't available within the DB), however due to some redundancy in
>> StylesheetEdit.java's myPrepare(), Roller 5.1 will still detect the custom
>> stylesheets and the moment they're saved again, their value will switch to
>> STYLESHEET.  We'll keep that redundancy until 5.0.x upgrade support is no
>> longer an issue.
>>
>> Presently the actions are ALL CAPS in the theme template listing page, a
>> little tough on the eyes, but we can put in an init caps value within the
>> Enums so friendly text (Custom, Weblog, etc.) will be shown instead.
>>
>> I'm going to be looking at some LDAP enhancements and documentation
>> tomorrow (stuff from Juergen) but that doesn't have to get into Roller 5.1.
>>  Dave, if you can confirm when you have the chance that the latest 5.1
>> works fine with Apache Blogs, I think we'll be ready to have a vote for 5.1.
>>
>> Regards,
>> Glen
>>
>>
>> On 07/24/2014 03:19 PM, Glen Mazza wrote:
>>
>>> I'm doing this now...it should get done today.
>>>
>>> Glen
>>>
>>> On 07/24/2014 11:27 AM, Glen Mazza wrote:
>>>
>>>> Hi Team,  I figured out why WEBLOG.custom_stylesheet is presently being
>>>> used, but can be retired with some coding changes.  These are changes I
>>>> think would be good to do anyway.
>>>>
>>>> There are two types of custom stylesheets: shared theme w/custom
>>>> stylesheet and custom theme w/custom stylesheet, either of which store one
>>>> row in WEBLOG_CUSTOM_TEMPLATE. Roller needs to know the name of the
>>>> stylesheet in order to grab the stylesheet from the WEBLOG_CUSTOM_TEMPLATE
>>>> table (and from there, CUSTOM_TEMPLATE_RENDITION) table.  The name of the
>>>> stylesheet is matched against the "link" column in WCT to make that match.
>>>>  To get the name:
>>>>
>>>> 1.) For the shared theme with custom stylesheet, Roller takes the name
>>>> of the stylesheet from the Shared Theme, information which comes from the
>>>> theme.xml file.  It doesn't read WEBLOG.custom_stylesheet.  This generally
>>>> works, but has a drawback that if we remove a shared theme Roller will not
>>>> know how to get to the custom stylesheet, and if the user switches shared
>>>> themes with a different name for its stylesheet, the user's custom
>>>> stylesheet will be inaccessible.
>>>>
>>>> 2.) For the custom theme with custom stylesheet, there is no shared
>>>> theme.xml file, so Roller needs to read WEBLOG.custom_stylesheet to get the
>>>> name.
>>>>
>>>> The architectural problem is that WEBLOG_CUSTOM_TEMPLATE's action
>>>> column does not have a STYLESHEET value, requiring the above name search in
>>>> order to locate it.  As our template parser currently allows only one
>>>> STYLESHEET (possibly with multiple renditions) per theme, if we had this
>>>> value it would be very easy for Roller to find the stylesheet:  SELECT
>>>> <row> from WEBLOG_CUSTOM_TEMPLATE where weblogid = XXXX and action =
>>>> STYLESHEET.  If we have this, WEBLOG.custom_stylesheet would no longer be
>>>> needed and the shared theme w/stylesheet will work even if the shared theme
>>>> is deleted.
>>>>
>>>> The WEBLOG_CUSTOM_TEMPLATE "action" column, within our code, should be
>>>> switched from strings to enum's anyway -- as part of this process I can add
>>>> the STYLESHEET value and retire WEBLOG.custom_stylesheet column.  (In a
>>>> perfect world we'd rename "action" to "component", but that's less
>>>> important for now.)  As part of the migration process, we'd have an update
>>>> command (pseudocode) so current user's templates can be identified 
>>>> properly:
>>>>
>>>> update weblog_custom_template wct set action = STYLESHEET where action
>>>> = custom AND websiteid in (select id from weblog w where theme=custom and
>>>> w.link = wct.link);
>>>>
>>>> WDYT?  I can probably get this done in a day.
>>>>
>>>> Regards,
>>>> Glen
>>>>
>>>>
>>>> On 07/23/2014 11:30 PM, Glen Mazza wrote:
>>>>
>>>>> Offhand, it looks like we can remove it, once I clean up the code a
>>>>> bit. This column isn't getting populated when I do a custom stylesheet
>>>>> alone; however, when I switch to a complete custom theme, it then copies
>>>>> the name of the stylesheet into weblog.customstylesheet. But it doesn't
>>>>> need to do that, that value is already in weblog_custom_template, and I
>>>>> don't think it does anything with that value anyway.
>>>>>
>>>>> Anyway, all the other columns in the list were removed, if I can't get
>>>>> to this remaining column it can wait until 5.1 is out.
>>>>>
>>>>> Glen
>>>>>
>>>>>
>>>>> On 07/23/2014 10:08 PM, Glen Mazza wrote:
>>>>>
>>>>>> No, in *that* case, we just get a single row in the
>>>>>> custom_template_rendition table for that CSS holding the stylesheet text
>>>>>> (instead of several rows holding also the theme templates.) It's just 
>>>>>> that
>>>>>> weblog's customstylesheet column is still being written to and read from
>>>>>> for some reason (still necessary?  I don't know...), which I'll
>>>>>> investigate. Apparently it's being used as a path value from the user's
>>>>>> resources folder (custom stylesheet path), but that shouldn't be 
>>>>>> necessary
>>>>>> as the CSS text is in the CTR table.  Stay tuned...
>>>>>>
>>>>>> Glen
>>>>>>
>>>>>> On 07/23/2014 09:57 PM, Dave wrote:
>>>>>>
>>>>>>> On Wed, Jul 23, 2014 at 9:38 PM, Glen Mazza <glen.ma...@gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>  Hmm...Weblog's customstylesheet column is perhaps still in use,
>>>>>>>> I'll look
>>>>>>>> more into it tomorrow.
>>>>>>>>
>>>>>>>>  As I remember, custom style sheet is a way to allow a blogger to
>>>>>>> add CSS
>>>>>>> for their blog while still using a shared theme, and not having to
>>>>>>> edit
>>>>>>> page templates. I think it is totally separate from the custom
>>>>>>> templates.
>>>>>>>
>>>>>>> - Dave
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Reply via email to