Changes

m
Line 2: Line 2:     
This page gathers info about Discourse migration.
 
This page gathers info about Discourse migration.
 +
 +
For the implementation, see [[User:Jtraulle/DiscourseMigration/Implementation]]
      Line 406: Line 408:  
To download attachments from previous forum, start by export the URLs from the Kunena database.
 
To download attachments from previous forum, start by export the URLs from the Kunena database.
   −
<source lang="SQL">
+
<syntaxhighlight lang="SQL">
 
SELECT CONCAT('https://www.dolibarr.fr/', folder, '/', filename) AS url FROM gvrsi_kunena_attachments ORDER BY id;
 
SELECT CONCAT('https://www.dolibarr.fr/', folder, '/', filename) AS url FROM gvrsi_kunena_attachments ORDER BY id;
</source>
+
</syntaxhighlight>
    
Put all the URLs into a text file (for example <code>uploads.txt</code>).
 
Put all the URLs into a text file (for example <code>uploads.txt</code>).
Line 414: Line 416:  
Next, use <code>wget</code> to download all attachment preserving the directory structure (yuuup, file names of multiple distinct attachments can be the same ...)
 
Next, use <code>wget</code> to download all attachment preserving the directory structure (yuuup, file names of multiple distinct attachments can be the same ...)
   −
<source lang="bash">
+
<syntaxhighlight lang="bash">
 
wget --no-host-directories --force-directories --input-file=uploads.txt
 
wget --no-host-directories --force-directories --input-file=uploads.txt
</source>
+
</syntaxhighlight>
    
===Permalinks===
 
===Permalinks===
Line 452: Line 454:  
This code is to paste in the <code>Admin → Customize → Themes → Light → Edit CSS/HTML → Common → </head></code> section.
 
This code is to paste in the <code>Admin → Customize → Themes → Light → Edit CSS/HTML → Common → </head></code> section.
   −
<source lang="HTML">
+
<syntaxhighlight lang="HTML">
 
<script type="text/javascript">
 
<script type="text/javascript">
 
var urlSplit = document.URL.split("#");
 
var urlSplit = document.URL.split("#");
Line 459: Line 461:  
}
 
}
 
</script>
 
</script>
</source>
+
</syntaxhighlight>
    
===Ads===
 
===Ads===
Line 869: Line 871:  
*[https://fr.mailjet.com/ Mailjet] pricing, [https://fr.mailjet.com/pricing/ first 6 000 monthly emails free (no more than 200 email per day ; 30 000 per month for 7,16€])
 
*[https://fr.mailjet.com/ Mailjet] pricing, [https://fr.mailjet.com/pricing/ first 6 000 monthly emails free (no more than 200 email per day ; 30 000 per month for 7,16€])
 
*[https://aws.amazon.com/fr/ses/ AWS SES (Amazon Web Services Simple Email Service)] pricing, [https://aws.amazon.com/fr/ses/pricing/ 0.10$ per 1 000 emails].
 
*[https://aws.amazon.com/fr/ses/ AWS SES (Amazon Web Services Simple Email Service)] pricing, [https://aws.amazon.com/fr/ses/pricing/ 0.10$ per 1 000 emails].
 +
*[https://sendgrid.net/ SendGrid] pricing, Free for 100 emails per day or 14$ per month for 40 0000 emails.
 +
 
|}
 
|}
   Line 880: Line 884:     
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
./launcher enter app
+
/var/discourse/launcher enter web_only
 
# Install required dependencies to import data (gems)
 
# Install required dependencies to import data (gems)
su discourse -c 'export IMPORT=1; bundle install --no-deployment --path vendor/bundle --jobs 4 --without test development'
+
su discourse -c "export IMPORT=1; bundle config unset deployment; bundle config set path 'vendor/bundle'; bundle config set without 'test development'; bundle install --jobs 4"
 
# Run import script
 
# Run import script
su discourse -c 'export IMPORT=1; bundle exec ruby script/import_scripts/kunena3.rb'
+
su discourse -c 'export IMPORT=1; cp /scripts/kunena3_dolibarr_de.rb /var/www/discourse/script/import_scripts/kunena3_dolibarr_de.rb; bundle exec ruby /var/www/discourse/script/import_scripts/kunena3_dolibarr_de.rb'
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
Note :
    
====Restaure Discourse backup from command line====
 
====Restaure Discourse backup from command line====
    
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
./launcher enter app
+
/var/discourse/launcher enter web_only
 
su discourse -c 'bundle exec ruby script/discourse restore forum-dolibarr-france-2019-08-07-080937-v20190731090219.tar'
 
su discourse -c 'bundle exec ruby script/discourse restore forum-dolibarr-france-2019-08-07-080937-v20190731090219.tar'
 
</syntaxhighlight>
 
</syntaxhighlight>
    
You must of course replace <code>forum-dolibarr-france-2019-08-07-080937-v20190731090219.tar</code> by the backup filename to restore.
 
You must of course replace <code>forum-dolibarr-france-2019-08-07-080937-v20190731090219.tar</code> by the backup filename to restore.
 +
 +
Note : to restore a save from a multisite install that is not the main (first) database, prepend the command by <code>RAILS_DB=dolibarrde</code> where <code>dolibarrde</code> is the name of the database :
 +
 +
<syntaxhighlight lang="bash">
 +
/var/discourse/launcher enter web_only
 +
su discourse -c 'RAILS_DB=dolibarrde bundle exec ruby script/discourse restore dolibarr-germany-forum-2020-08-16-163120-v20200814081437.sql.gz'
 +
</syntaxhighlight>
    
===Docker tips and tricks===
 
===Docker tips and tricks===
Line 906: Line 919:  
The default mount point for all persisted data related to Discourse is through  
 
The default mount point for all persisted data related to Discourse is through  
   −
<code>/var/discourse/shared/standalone</code>
+
<code>/var/discourse/shared/data</code> and <code>/var/discourse/shared/web-only</code>
 
      
===PostgreSQL tips and tricks===
 
===PostgreSQL tips and tricks===
Line 915: Line 927:  
''Useful to be able to access the database from a graphical client (like pgAdmin 4, TablePlus or Postico for example).''
 
''Useful to be able to access the database from a graphical client (like pgAdmin 4, TablePlus or Postico for example).''
   −
1. Expose the 5432 TCP port from the container to the host by adding this line to the '''<code>expose:</code>''' section of <code>containers/app.yml</code> :
+
1. Expose the 5432 TCP port from the container to the host by adding this line to the '''<code>expose:</code>''' section of <code>/var/discourse/containers/app.yml</code> :
 
<syntaxhighlight lang="yaml">
 
<syntaxhighlight lang="yaml">
 
  - "5432:5432"
 
  - "5432:5432"
Line 921: Line 933:  
2. Rebuild the container to take into account modifications to '''<code>app.yml</code>''' :
 
2. Rebuild the container to take into account modifications to '''<code>app.yml</code>''' :
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
  ./launcher rebuild app
+
cd /var/discourse
 +
  ./launcher rebuild data
 
</syntaxhighlight>
 
</syntaxhighlight>
 
3. Enter into the container, login as the default postgresql user, add a new user and grant it all perms to the database
 
3. Enter into the container, login as the default postgresql user, add a new user and grant it all perms to the database
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
  ./launcher enter app
+
cd /var/discourse
 +
  ./launcher enter data
 
  sudo -u postgres psql discourse
 
  sudo -u postgres psql discourse
 
</syntaxhighlight>
 
</syntaxhighlight>