tmatbcorp VIP
Total posts: 41
12 Jan 2015 17:12

Hi,

We have migrated Cobalt from 7 to 8 while Joomla was migrated from 2.5.8 to 3.3.6.

We are soon going to have to deliver what we did to our client.

Articles are added and users are subscribing every day to the live site and we cannot afford any data loss.

Is there a way to deliver our work without erasing anything from the client's database (which is still with J2.5.8 and Cobalt7)? Is it enough to deliver only the sources or are there also data tables to deliver?

For now we have tested the delivery on a VM and tried first upgrading the Joomla to 3.3.6 and Cobalt to 8 and then replacing sources with the development ones but it does not seem to be the right thing to do.

Any advice would be much appreciated.

Regards

Last Modified: 26 Jan 2015


Sergey
Total posts: 13,748
13 Jan 2015 11:28

How you gonna migrate users? All depends on this. If you export and then import, then you cannot migrate articles as users will have different ID. What I would do is this.

  1. Turn site offline.
  2. Restart server to drop any connection
  3. Update 2.5 to 3.6. Only Joomla. So that you have users in new DB format.
  4. Export Joomla user tables. Emerald tables if it is what you use for subriction. Export cobalt tables with articles and article values and some other. Here you have to kno what you are doing. Do not export section, types, fields tables.
  5. Import those tables to your current Joomla 3 with override.
  6. Install Cobalt and it will alter all imported cobalt tables to latest version.
  7. In emerald go to import and migrate from Emerald 8 to Emardl 9 with one click.

tmatbcorp VIP
Total posts: 41
13 Jan 2015 15:00

Thank you, I am going to try that.

If we do not export sections, types and fields tables, will we have to re-save the templates' configuration for every section and every type and every field or will it suffice to simply replace integration's com_cobalt folder by development's one?


Sergey
Total posts: 13,748
13 Jan 2015 15:09

tmatbcorp If we do not export sections, types and fields tables, will we have to re-save the templates' configuration for every section and every type and every field or will it suffice to simply replace integration's com_cobalt folder by development's one?

NO. This is why you are doing it. You already have it saved in your new Joomla. So you only e3xport from your old Joomla which does not break that settings. You only export content and import into new section. Of course I am telling about full tables dump with PhpMyAdmin os something.

The point is that you have your new site done, and you only need to put there new content which is users, subscriptions and cobalt articles. Do not export subscription plans, becuase you will override it. Export only subscriptions. Do not export types, export only content.


tmatbcorp VIP
Total posts: 41
13 Jan 2015 15:51

I think we are not talking about doing things in the same order (or I did not understand what you said).

To be clearer:

  • Development environment was on Joomla 2.5 with Cobalt 7 and we upgraded to J3 and Co8 (with having to re-save every template for sections, types and fields and re-code all our custom templates in com_cobalt).
  • Integration environment is on Joomla 2.5 with Cobalt 7 and with more users and Cobalt records than development environment.

Now we have to migrate the work we did on dev environment to integration one without loosing any data (records, users, whatever...) from integration.

Based on what you said and assuming I understood well, we would have to:

  • export from development: sections, types and fields tables
  • update integration from J2.5 to J3 and from Co7 to Co8
  • import dev sections, types and fields tables to integration
  • copy com_cobalt sources from development to integration

=> in that way, we will not loose any user or record from integration and will also not have to resave templates' configuration nor redo custom templates.

Would that do?


tmatbcorp VIP
Total posts: 41
14 Jan 2015 17:06

What about Cobalt - Records modules delivery?

We had two of those which used to be displayed on the frontpage but, since the upgrade, frontpage returned 500 server error unless we unpublished them. Moreover, the footer link which linked to them also returns 500 server error.

A third module with type Cobalt - Records is displayed correctly on frontpage.

Is there another table we should add to the procedure I suggested in my above message?

Thanks,


Sergey
Total posts: 13,748
15 Jan 2015 10:06

No, this is not what I mean. Lets do terminology.

  • I1 - is an original Joomla 2.5 wesite instance with is currently in production
  • I2 - is a development which you create by updating I1 to Joomla 3

The procedure.

  • Set I1 offline
  • Update I1 from Joomla 2.5 to Joomla 2.3
  • Export with PHPMyAdmin users, cobalt content, subscriptions and all other data that was added to the I1 sinse you created a I2 fork which you converted into Joomla 3. Only content tables not those with configuration like sections types and fields. Those already seted up in I2.
  • Import those tables into I2
  • Install Cobalt over and it will correct all cobalt tables to latest cobalt version. And new data will be already there.
  • I still do not know if you use Emerald or not, so since you have commentc on that i'll skip this section.
  • So not I2 hase all configurations and new content. Delete (or archive) I1 and puvlish I2 website.

tmatbcorp VIP
Total posts: 41
15 Jan 2015 15:02

OK with the same terminology it is indeed clearer.

We do not have exactly what you say.

  • I1 - is an original Joomla 2.5 wesite instance which is currently in production
  • I2 - is a development which we created by updating I1 to Joomla 3 and Cobalt 7 to Cobalt 8 and where we redid our custom templates
  • I3 - new server which has to get both new developments and templates configuration from I2 and new data from I1

Some other info:

  • I1 cannot be turned offline (client's constraint)
  • We are not using Emerald

Sergey Install Cobalt over and it will correct all cobalt tables to latest cobalt version

I don't understand what you mean since Cobalt 8 is already installed on I2. Reinstall Co8 over itself?

If I try writing the procedure with what you suggest:

  • Copy I1 sources and DB to I3 => I3 and I1 are the same
  • Update I3 from J2.5 to J3 and Co7 to Co8
  • Export from I3 tables ayo4r_js_res_favorite, ayo4r_js_res\files, ayo4r_js_res\record, ayo4r_js_res_record_values, ayo4r_js_res\subscriptions, ayo4r_users, ayo4r_user_usergroup_map (please tell me if I am missing some tables or if I have too much) => users and records have the right format
  • Import these tables into I2 with override => now I2 has all configurations and new content
  • Delete everything from I3 and move sources and DB from I2 to I3 => now I3 has all configurations and new content
  • Switch production from I1 to I3 => new Joomla and Cobalt now in production

What do you think about that?

Thanks for your answers


Sergey
Total posts: 13,748
16 Jan 2015 02:23

tmatbcorp I don't understand what you mean since Cobalt 8 is already installed on I2. Reinstall Co8 over itself?

When you import tables, the bables will be like Cobalt 7 and Cobalt 8 tables will be overriden. You will have to add columns or delete columns acording to latest version of CObalt. For this just install Cobalt 8 over. It will analyze tables and make nesessary changes.

tmatbcorp I3 - new server which has to get both new developments and templates configuration from I2 and new data from I1

Then change my last step to

  • Move I2 to I3 server.

Also I is a Jooomla instance not servers. So if you have 3 or 2 servers that does not matter. You have only 2 Joomla Instances here to work with.

tmatbcorp I1 cannot be turned offline (client's constraint)

Theer is no way to update site without turning it off at least for 2 hours.

tmatbcorp If I try writing the procedure with what you suggest:

  • Copy I1 sources and DB to I3 => I3 and I1 are the same
  • Update I3 from J2.5 to J3 and Co7 to Co8
  • Export from I3 tables ayo4r_js_res_favorite, ayo4r_js_res\files, ayo4r_js_res\record, ayo4r_js_res_record_values, ayo4r_js_res\subscriptions, ayo4r_users, ayo4r_user_usergroup_map (please tell me if I am missing some tables or if I have too much) => users and records have the right format
  • Import these tables into I2 with override => now I2 has all configurations and new content
  • Delete everything from I3 and move sources and DB from I2 to I3 => now I3 has all configurations and new content
  • Switch production from I1 to I3 => new Joomla and Cobalt now in production

I1 is sacrificial. You update it to Joomla 3 but you not turn it into new site. Becuae it is very complicated to transfer all your changes from I2 to I1. It is easier the other way around. Transfer all new data from I1 to I2.

So you update it only for one reason, to update user DB to conform new Joomla 3 to be able to transfer all users from I1 to I2. You dump your data from updated I1 and that is it. You do not need it any more.

You cannot use I3 here. Because, while you are doing this process, after you copy I1 to I3, there might be new subscriptions or users added. What do you do about that? To avoid it, you have to disable all of this during migration process.

So if you are ok wuth this problem then your plan is ok.

tmatbcorp Export from I3 tables ayo4r_js_res_favorite, ayo4r_js_res_files, ayo4r_js_res_record, ayo4r_js_res_record_values, ayo4r_js_res_subscriptions, ayo4r_users, ayo4r_user_usergroup_map (please tell me if I am missing some tables or if I have too much) => users and records have the right format

As for Cobalt tables you can add all js_res_user_*. All js_res_cunscribe_*. If you use categories in sections js_res_record_category and if you use tags js_res_tags*. js_res_notifications so users do not lose any important what happened. And if you use upload fileds anywheer js_res_files.

You also mentioned that there is sunscription manager on your site. Do not forget to export subscriptions of users. And tables of other extensions that users interact with.


tmatbcorp VIP
Total posts: 41
26 Jan 2015 09:53

Hi,

What we finally did and it seems to be working :

  • Copy I1 to I3 => I3 is a copy of I1
  • Turn I1 offline
  • Update I3 to J3 and Co8 => I3 is a copy of I1 but with J3 format
  • Export all data tables from I3 except js_res_field*, js_res_sections and js_res_types
  • Save /images and /uploads from I3
  • Replace sources and DB on I3 by I2's ones => I3 is a copy of I2 now
  • Import with override saved data tables and saved /images and /uploads directories on I3 => I3 has users and images from I1 and J3 format and I2's Cobalt configuration
  • Switch production to I3

Sergey
Total posts: 13,748
26 Jan 2015 10:37

I am not sure but this seams not correct

  • Replace sources and DB on I3 by I2's ones => I3 is a copy of I2 now

I think that you did

  • Export all data tables from I3 except js_res_field*, js_res_sections and js_res_types

to import it into I2. But finaly you did vice versa.

Anyway may be I just do not understand.

Powered by Cobalt