Bienvenue, Invité
Nom d'utilisateur : Mot de passe : Se souvenir de moi

SUJET : Manual method for moving survey to another database

Manual method for moving survey to another database il y a 9 mois 2 semaines #101610

  • Mike1985_2
  • Portrait de Mike1985_2
  • Hors ligne
  • Fresh Lemon
  • Messages : 6
  • Karma: 0
I have LimeSurvey 1.90 installed on two servers and I want to be able to copy a survey from one to the other without using the admin system to import or export.

How risky is it and what table do I need to consider??

Obviously I will need to copy `survey_xxxxx`, `tokens_xxxxx`, a row from `surveys` and a row from `surveys_languagesettings`. I suppose I will have to copy over the `conditions`, `questions` and `answers` as well. (Sorry I'm basically answering my on question here).

Will indexing and id's become an issue?
L'administrateur a désactivé l'accès en écriture pour le public.

Manual method for moving survey to another database il y a 9 mois 2 semaines #101612

  • Ben_V
  • Portrait de Ben_V
  • Hors ligne
  • Platinum Lime
  • Messages : 1068
  • Remerciements reçus 235
  • Karma: 74
Is your 2nd installation (for import) new?
...without using the admin system to import or export.
Pure curiosity: Why not?
Benoît

goo.gl/Bw5iM => Recherche GG dans le forum français (remplacer "exemple" dans la barre de recherche)
goo.gl/WX8PH => GG search for english forum (Replace "example" in the search bar)
goo.gl/IxiGu => Búsqueda en el foro en español (Cambiar "ejemplo" en la barra de...
Dernière édition: il y a 9 mois 2 semaines par Ben_V.
L'administrateur a désactivé l'accès en écriture pour le public.

Manual method for moving survey to another database il y a 9 mois 2 semaines #101615

  • Mike1985_2
  • Portrait de Mike1985_2
  • Hors ligne
  • Fresh Lemon
  • Messages : 6
  • Karma: 0
Nothing more than inter-office politics! It's as sad as that.

They're both at 1.90 and are both already installed. It's looking like every single table needs partially copying here.

How about this.. Can I export the survey (using the admin system or whatever) as SQL? Just one time so I can unpick it and understand and consider everything that is needed? At the moment, the export is an XML file which I don't really understand..
L'administrateur a désactivé l'accès en écriture pour le public.

Manual method for moving survey to another database il y a 9 mois 2 semaines #101616

  • Ben_V
  • Portrait de Ben_V
  • Hors ligne
  • Platinum Lime
  • Messages : 1068
  • Remerciements reçus 235
  • Karma: 74
Theoretically you can update a database using PhpMyAdmin or similar interface...
In your case it sounds that you will get lots of trouble with groups & question IDs...
Note that you can change (everywhere) without problem the survey ID directly in your (xml) export/import file.

I hope another LS user may give you some good advices, because I can't personnaly encourage you to apply this process :(
Benoît

goo.gl/Bw5iM => Recherche GG dans le forum français (remplacer "exemple" dans la barre de recherche)
goo.gl/WX8PH => GG search for english forum (Replace "example" in the search bar)
goo.gl/IxiGu => Búsqueda en el foro en español (Cambiar "ejemplo" en la barra de...
L'administrateur a désactivé l'accès en écriture pour le public.

Manual method for moving survey to another database il y a 9 mois 2 semaines #101621

  • c_schmitz
  • Portrait de c_schmitz
  • Hors ligne
  • LimeSurvey Team
  • Messages : 755
  • Remerciements reçus 104
  • Karma: 88
TBH I don't see a viable solution here.
Support us, too. Donate to the LimeSurvey project and help keep us going!
L'administrateur a désactivé l'accès en écriture pour le public.

Manual method for moving survey to another database il y a 2 mois 4 semaines #109649

  • Mike1985_2
  • Portrait de Mike1985_2
  • Hors ligne
  • Fresh Lemon
  • Messages : 6
  • Karma: 0
Update...

In case anyone is interested. I have been working with this for a while now. I am essentailly sending the following SQL commands to a .sql file;
CREATE TABLE temp.`surveys` AS                  (SELECT * FROM limeSurvey.`surveys` WHERE `sid` = '$sid');
CREATE TABLE temp.`surveys_languagesettings` AS (SELECT * FROM limeSurvey.`surveys_languagesettings` WHERE `surveyls_survey_id` = '$sid');
CREATE TABLE temp.`surveys_rights` AS           (SELECT * FROM limeSurvey.`surveys_rights` WHERE `sid` = '$sid');
CREATE TABLE temp.`groups` AS                   (SELECT * FROM limeSurvey.`groups` WHERE `sid` = '$sid');
CREATE TABLE temp.`questions` AS                (SELECT * FROM limeSurvey.`questions` WHERE `sid` = '$sid');
CREATE TABLE temp.`assessments` AS              (SELECT * FROM limeSurvey.`assessments` WHERE `sid` = '$sid'); 
CREATE TABLE temp.`answers` AS             (SELECT t2.* FROM limeSurvey.`questions` as t1 LEFT JOIN limeSurvey.`answers` as t2 ON t1.`qid` = t2.`qid` WHERE t1.`sid` = '$sid' AND t2.`qid` IS NOT NULL);
CREATE TABLE temp.`conditions` AS          (SELECT t2.* FROM limeSurvey.`questions` as t1 LEFT JOIN limeSurvey.`conditions` as t2 ON t1.`qid` = t2.`qid` WHERE t1.`sid` = '$sid' AND t2.`qid` IS NOT NULL);
CREATE TABLE temp.`question_attributes` AS (SELECT t2.* FROM limeSurvey.`questions` as t1 LEFT JOIN limeSurvey.`question_attributes` as t2 ON t1.`qid` = t2.`qid` WHERE t1.`sid` = '$sid' AND t2.`qid` IS NOT NULL);
CREATE TABLE temp.`tokens_$sid` AS           (SELECT * FROM limeSurvey.`tokens_$sid`);
CREATE TABLE temp.`survey_$sid` LIKE limeSurvey.`survey_$sid`

I also ran this string replace to stop "TABLE ALREADY EXISTS" error
$file_contents = str_replace("CREATE TABLE","CREATE TABLE IF NOT EXISTS",$file_contents);

And these SQL lines to prevent ID clashing
ALTER TABLE `tokens_'.$sid.'` ADD PRIMARY KEY ( `tid` );
ALTER TABLE `tokens_'.$sid.'` ADD INDEX `tokens_'.$sid.'_idx` ( `token` );
ALTER TABLE `tokens_'.$sid.'` ADD INDEX `idx_tokens_'.$sid.'_efl` ( `email` ( 120 ) , `firstname` , `lastname` );
ALTER TABLE `tokens_'.$sid.'` CHANGE `tid` `tid` INT( 11 ) NOT NULL AUTO_INCREMENT;
ALTER TABLE `survey_'.$sid.'` CHANGE `id` `id` INT( 11 ) NOT NULL AUTO_INCREMENT;	

This is probably of no interest to anyone but you never know...
L'administrateur a désactivé l'accès en écriture pour le public.
Modérateurs: ITEd
Temps de génération de la page : 0.298 secondes
Donation Image