Upgrading from Joomla 1.5 to 1.7, and Fabrik 2 to Fabrik 3

sounds like the upgrade queries were not being run, which is a bug Felixcat and I fixed this week. So try upgrading from github again or you can take the queries in
administrator/components/com_fabrik/sql/updates/mysql/2.0x-3.0.sql
replace the #__ with your db prefix and run them through phpmyadmin
 
When clicking the upgrade to 2.1 link on the fabrik page under tools I get:
Code:
[B]Fatal error[/B]:  Unsupported operand types in [B]/home/coldsys9/public_html/desowvtest/administrator/components/com_fabrik/models/upgrade.php[/B] on line [B]34
[/B]

So I proceeded to upgrade manually with phpmyadmin and the script in the 2.0.X-3.0.sql file as I have been doing, this time it worked. However note that this line is in the file twice:
Code:
ALTER TABLE `j17_fabrik_connections` CHANGE `state` `published` INT( 1 ) NOT NULL DEFAULT '0';

and atleast for me there is no table "fabrik_ratings" in my database:
Code:
ALTER TABLE `j17_fabrik_ratings` CHANGE `tableid` `listid` INT( 6 ) NOT NULL;


When I tried to save a list from the admin backend after updating I got this upon the page redirect:
Code:
[B]500 - An error has occurred.[/B]

 				MySQL server has gone away SQL=SELECT *, fg.group_id AS group_id, RAND() AS rand_order FROM j17_fabrik_formgroup AS fg INNER JOIN j17_fabrik_groups as g ON g.id = fg.group_id  WHERE fg.form_id = 0 AND published = 1 ORDER BY fg.ordering
 				[URL="http://www.coldsystems.net/desowvtest/administrator/index.php"]Return to Control Panel[/URL]


When trying to view the information on a "list" it is blank when the data is still in the MySQL database table, see screenshot.


Thoughts?
 

Attachments

  • fabrikblanklistscreen.jpg
    fabrikblanklistscreen.jpg
    87.2 KB · Views: 427
  • fabrikblankeditdetailsscreen.jpg
    fabrikblankeditdetailsscreen.jpg
    81.9 KB · Views: 417
Well, it looks like the time has come for me to try and replace the fabrik forms and tables on my website with hand written versions... I just cant afford delaying any longer.

Hopefully you guys will be able to find a fix to the problems soon, as while I can do this by hand, it is much faster and easier (especially when making minor changes) to use fabrik.

Thanks for the great product, I hope you are able to get version 3 out and working soon.
 
When clicking the upgrade to 2.1 link on the fabrik page under tools I get:
Code:
[B]Fatal error[/B]:  Unsupported operand types in [B]/home/coldsys9/public_html/desowvtest/administrator/components/com_fabrik/models/upgrade.php[/B] on line [B]34
[/B]
Not sure about this one, line 34 is getting the tables.... so maybe this was done on a partially migrated database?

So I proceeded to upgrade manually with phpmyadmin and the script in the 2.0.X-3.0.sql file as I have been doing, this time it worked. However note that this line is in the file twice:
Code:
ALTER TABLE `j17_fabrik_connections` CHANGE `state` `published` INT( 1 ) NOT NULL DEFAULT '0';
and atleast for me there is no table "fabrik_ratings" in my database:
Code:
ALTER TABLE `j17_fabrik_ratings` CHANGE `tableid` `listid` INT( 6 ) NOT NULL;
The duplicate line has been removed and the fabrik_ratings code has been moved. The upgrade script will now check if you have fabrik_ratings.


When I tried to save a list from the admin backend after updating I got this upon the page redirect:
Code:
[B]500 - An error has occurred.[/B]

                 MySQL server has gone away SQL=SELECT *, fg.group_id AS group_id, RAND() AS rand_order FROM j17_fabrik_formgroup AS fg INNER JOIN j17_fabrik_groups as g ON g.id = fg.group_id  WHERE fg.form_id = 0 AND published = 1 ORDER BY fg.ordering
                 [URL="http://www.coldsystems.net/desowvtest/administrator/index.php"]Return to Control Panel[/URL]
When trying to view the information on a "list" it is blank when the data is still in the MySQL database table, see screenshot.


Thoughts?
Not sure on that one, I haven't tested all options yet but the script seems to be running smoother now.

It's best to run the migration from scratch each time though.... I haven't tested this with Jupgrade yet either, I will do tomorrow.

My changed are waiting for a pull request so I'll update the thread once they have been approved and merged.
 
Well, it looks like the time has come for me to try and replace the fabrik forms and tables on my website with hand written versions... I just cant afford delaying any longer.

Hopefully you guys will be able to find a fix to the problems soon, as while I can do this by hand, it is much faster and easier (especially when making minor changes) to use fabrik.

Thanks for the great product, I hope you are able to get version 3 out and working soon.


Do you have a dev \ test setup that you can use for testing changes to the migration script?
 
Okay, just to keep an update on progress with this one.....


I have tried a few 'clean upgrades' from Fabrik 2.x to 3.x and apart from a couple of very minor issues it works well.

Jupgrade is a different story though. I'll make this a sticky eventually but whilst it's fresh in my mind I'll explain, (so I can copy and paste later).

Jupgrade actually does a migration and not a physical upgrade of your site.

The end result is

xpvx4x.png



jos_xxxx would be your existing Joomla 1.5 tables unless you have previously changed the prefix.

j1.7_xxxx is the new prefix of the installation jupgrade performs.

All new physical files are placed in the subdirectory /jupgrade. There is an option to specify your own subdirectory name..... but it doesn't seem to work at the moment.

Once things are working 100% I'll provide more detail, the following is only a list of the procedure and not actually how to do it.

A part of the routine makes the end 1.7 have the same prefix the 1.5 site did. This may or may not be important depending on your setup, for example jos_fabrik_tables, (which is where Fabrik stores what physical tables it's linking to), would have reference to the J1.5 prefix if you are linking to Joomla tables, (community builder for example).

So with jupgrade changing the prefix this will no longer work. Hence we change the prefix before the migration and migrate back to the jos_ prefix, (or whatever you had it set to).


01 ) Install Jupgrade on your current 1.5 site
02 ) Install akeeba Admin tools (or a utility that allows you to change table prefix)
03 ) Backup jos_fabrik_xxxx (All the main Fabrik tables)
04 ) Change database prefix to something other than jos_ (example 123_)
05 ) Change jupgrade parameters to upgrade prefix from 123_ to jos_
06 ) Run Upgrade
07 ) Delete contents of root directory (LEAVING THE JUPGRADE SUBDIRECTORY IN PLACE)
08 ) Move contents of subdirectory into root
09 ) Remove empty jupgrade folder
10 ) Remove old database tables (Anything starting with 123_xxxx)
11 ) Install Fabrik
12 ) Remove Fabrik tables starting with jos_fabrik_xxxx
13 ) Update latest github files
14 ) Restore your saved jos_fabrik_xxxx tables (that you backed up earlier point (3).
13 ) Run Fabrik upgrade. (Click Fabrik, Tools, Upgrade)


It's a little involved but because of how jupgrade does things and the physical nature of how Fabrik works it seems to be the only way at the moment.

There are still a couple of changes to be made to the Fabrik upgrade script, not bugs as such but adaptions to play nice with Jupgrade.


I'll keep you posted.......

Edit 1:-

The reason for points 07 - 10 is due to an issue when installing fabrik in the new site. For some unknown reason it tries to install into the old database. By removing the old database and files the problem is resolved.

I now believe this is an issue with jupgrade as I have installed their latest version from github and that particular problem has gone away.

This means you can run both sites in parallel during your testing phase. www.adomain.com will be your untouched 1.5 installation and www.adomain.com/jupgrade will be your new 1.7 version.

But.... there's always a but. Currently their latest github version only caters for 1.6 and 2.5! So you can download my version which has the correct 1.7 options.

https://github.com/felixkat/jUpgrade


.
 
Migration problem

I have the following setup

I have migrated my site with jupgrade (2.5.0). I have installed fabrik 3.0.3.

In the database i both have my new fabrik tables and my old fabrik tables - only difference is the j17 in front of the prefiks of the new fabrik tables.

When I press the "Upgrade from 2.1" - i get a white screen with this:

UPDATE #__menu SET link = REPLACE(link, 'view=table', 'view=list') WHERE component_id = 10045
UPDATE #__menu SET link = REPLACE(link, 'tableid=', 'listid=') WHERE component_id = 10045
UPDATE #__menu SET link = REPLACE(link, 'fabrik=', 'formid=') WHERE component_id = 10045


Fatal error: Unsupported operand types in /home/..../jupgrade/administrator/components/com_fabrik/models/upgrade.php on line 35
 
Did you follow this upgrade process?

Double check your Fabrik connection as well.




01 ) Install Jupgrade on your current 1.5 site
02 ) Install akeeba Admin tools (or a utility that allows you to change table prefix)
03 ) Backup jos_fabrik_xxxx (All the main Fabrik tables)
04 ) Change database prefix to something other than jos_ (example 123_)
05 ) Change jupgrade parameters to upgrade prefix from 123_ to jos_
06 ) Run Upgrade
07 ) Delete contents of root directory (LEAVING THE JUPGRADE SUBDIRECTORY IN PLACE)
08 ) Move contents of subdirectory into root
09 ) Remove empty jupgrade folder
10 ) Remove old database tables (Anything starting with 123_xxxx)
11 ) Install Fabrik
12 ) Remove Fabrik tables starting with jos_fabrik_xxxx
13 ) Update latest github files
14 ) Restore your saved jos_fabrik_xxxx tables (that you backed up earlier point (3).
13 ) Run Fabrik upgrade. (Click Fabrik, Tools, Upgrade)
 
No - because I did a lot of work on the migratet site before I tried with Fabrik - so I would rather not have do do it again! But what is the problem - is it that the installation resides in a subfolder - jupgrade ?? Why can't I just remove the new fabrik tables - rename the old ones to fit my new installation, insert via phpMyAdmin and do the upgrade ?? Is it a problem that the old tables are still there ??

Edit: Actually I have tried the above, but then I cannot get a connection to db - it fails when I try to upgrade.
 
Edit: Actually I have tried the above, but then I cannot get a connection to db - it fails when I try to upgrade.


When I did the manual method during the testing phase I had to correct the connection via phpmyadmin. So this may work for you.


Do your physical tables, (that you link to in Fabrik), have prefixes?


is it that the installation resides in a subfolder

This was causing an issue at some point hence the recommendation to move it to the root. There has been many changes to Fabrik, the install script and indeed Jupgrade since I wrote that though, so things may have changed.

I will be performing another upgrade at some point in the next couple of days as I need to test again for the proper documentation.

Try changing the connection manually and let me know how you get on.
 
It worked !

I did this:

Migrated my site with jupgrade (the tables from the old and new site in same db - old site prefix:fjdkde_ new site prefix:j17fjdkde_)

Installed fabrik 3.0.3 (github version)

Removed new fabrik tables

Inserted old fabrik tables after altering the prefix to j17fjdkde_

Altered the db settings via phpMyAdmin

Used "Upgrade from 2.1"


Worked !

Thanks for your help
 
But now I get this error uppon viewing data in backend:

Warning: Invalid argument supplied for foreach() in /home/...../plugins/fabrik_element/databasejoin/databasejoin.php on line 920
 
It worked !

I did this:

Migrated my site with jupgrade (the tables from the old and new site in same db - old site prefix:fjdkde_ new site prefix:j17fjdkde_)

Installed fabrik 3.0.3 (github version)

Removed new fabrik tables

Inserted old fabrik tables after altering the prefix to j17fjdkde_

Altered the db settings via phpMyAdmin

Used "Upgrade from 2.1"


Worked !

Thanks for your help


Yep, that should do it. :) Glad it worked out for you.


But now I get this error uppon viewing data in backend:

Warning: Invalid argument supplied for foreach() in /home/...../plugins/fabrik_element/databasejoin/databasejoin.php on line 920


Okay, so something may not have migrated then.

Try re-saving your database join elements to see if that cures the problem.

Is there any chance you could backup your database before you do so, re-save the elements and if it works backup the database again. It would be good to compare the two to see what's not migrating so we can fix it.
 
It did not change anything to re-save the joint element. Also - when I edit a record - the text field is not shown in the editor - althoug I can se the text in the listing in backend ??

Eventually I can pm the two different sql sets to you ?

Edit: I found out that i can export every list to csv and all the data is there, but I cannot edit anything in front or back - the formular fields are empty - also in a list that has nothing to do with the join ??

Regards
 
We are in need of some funding.
More details.

Thank you.

Members online

Back
Top