đŦ Data Migration â
Data Bundle â
The data bundle (Artrans = Art + Ran) is the Artalk persistent data storage standard format.
Artran Format Definition
We define it as follows: each comment data (Object) is called an Artran, and multiple comment data together form Artrans (Array type).
{
"id": "123",
"rid": "233",
"content": "Hello Artalk",
"ua": "Artalk/6.6",
"ip": "233.233.233.233",
"created_at": "2021-10-28 20:50:15 +0800",
"updated_at": "2021-10-28 20:50:15 +0800",
"is_collapsed": "false",
"is_pending": "false",
"vote_up": "666",
"vote_down": "0",
"nick": "qwqcode",
"email": "qwqcode@github.com",
"link": "https://qwqaq.com",
"password": "",
"badge_name": "Administrator",
"badge_color": "#FF716D",
"page_key": "https://artalk.js.org/guide/transfer.html",
"page_title": "Data Migration",
"page_admin_only": "false",
"site_name": "Artalk",
"site_urls": "http://localhost:3000/demo/,https://artalk.js.org"
}
We call a JSON array Artrans, and each Object item within the array is an Artran (without the s).
Conversion Tool â
Use the following tool to convert comment data from other formats to Artrans, and then import them into Artalk. Open in a new window
TIP
The following text provides various methods to obtain source data for reference; if you encounter any issues, please submit feedback via issue.
Data Import â
Data files converted to the .artrans
format can be imported into Artalk:
- Dashboard Import: You can find the "Migration" tab in the "Dashboard" and follow the prompts to import Artrans.
- Command Line Import: Refer to Command Line Import.
Obtaining Source Data â
Typecho â
Install Plugin to Obtain Artrans
We provide an Artrans export plugin:
- Click "here" to download the plugin and "unzip" it into the Typecho directory
/usr/plugins/
. - Go to the Typecho backend "Console - Plugins" to enable the "ArtransExporter" plugin.
- Go to "Console - Export Comments (Artrans)" to export all Typecho comments in Artrans format.
Direct Database Connection to Obtain Artrans
If your blog is no longer active but the database still exists, you can use our command line tool that supports direct connection to the Typecho database.
Download Artransfer-CLI, unzip the package, and execute:
./artransfer typecho \
--db="mysql" \
--host="localhost" \
--port="3306" \
--user="root" \
--password="123456" \
--name="typecho_database_name"
After execution, you will get a file in Artrans format:
> ls
typecho-20220424-202246.artrans
Note: It supports connecting to various databases. For more details, refer to here.
WordPress â
Go to the WordPress backend "Tools - Export", check "All Content", and export the file. You can then use the conversion tool for conversion.
Valine â
Go to the LeanCloud backend to export the comment data file in JSON format, then use the conversion tool for conversion.
Waline â
Using the LeanCloud database, Waline can refer to the above method for Valine as their formats are similar.
For independently deployed Waline, download Artransfer-CLI to connect to the local database for export. Execute the command line:
./artransfer waline \
--db="mysql" \
--host="localhost" \
--port="3306" \
--user="root" \
--password="123456" \
--name="waline_database_name" \
--table-prefix="wl_"
You will obtain a data file in Artrans format, then import into Artalk.
Note: It supports connecting to various databases. For more details, refer to here.
Disqus â
Go to the Disqus backend, find "Moderation - Export" and click to export. Disqus will send a .gz
compressed package to your email. After extracting, you will get a .xml
data file, which you can then use the conversion tool to convert to Artrans.
Commento â
You can export the data file in JSON format from the Commento backend, then use the conversion tool for conversion.
[Image, to be supplemented...]
Twikoo â
Twikoo is a comment system developed based on Tencent Cloud. Go to the Tencent Cloud backend to export the comment data file in JSON format, then use the conversion tool for conversion.
Artalk v1 (Old PHP Backend) â
Artalk v1 is the old backend of Artalk, written in PHP. The new backend has fully transitioned to Golang with a redesigned data table structure. Upgrading to the new version requires using the conversion tool for conversion.
Old version data path: /data/comments.data.json
Command Line Import â
Execute artalk import -h
to view the help documentation.
./artalk import [parameters...] [filename]
Set import parameters via the -p
flag on the command line:
./artalk import -p '{ "target_site_name": "Site", "target_site_url": "https://xx.com", "json_file": "", "url_resolver": true }' ./artrans.json
If importing via the web backend, you can fill the JSON in the text box:
{
"target_site_name": "Site",
"target_site_url": "https://xx.com",
"json_file": "path on the server",
"url_resolver": true
}
Artalk import parameters:
Parameter | Type | Description |
---|---|---|
target_site_name | String | Name of the import site |
target_site_url | String | URL of the import site |
url_resolver | Boolean | URL resolver, default is off. Re-generates the page_key based on the target_site_url as the new page_key for comments |
url_keep_domain | Boolean | Default is off. Whether to keep the original domain part of the URL. If off, removes the domain part of pageKey . When url_resolver is on, url_keep_domain is also enabled |
json_file | String | Path to the JSON data file |
json_data | String | Content of the JSON data string |
assumeyes | Boolean | Execute directly without confirmation y/n |
Data Backup â
You can find the "Migration" tab in the "Dashboard" on the front end, and export comment data in Artrans format.
Command Line Backup â
Export: artalk export ./artrans
Import: artalk import ./artrans
Advanced Usage â
Execute artalk export
to directly "standard output", and perform "pipe" or "output redirection" operations, for example:
artalk export | gzip -9 | ssh username@remote_ip "cat > ~/backup/artrans.gz"
Conclusion â
We currently support converting data from Typecho, WordPress, Valine, Waline, Disqus, Commento, Twikoo, etc., to Artrans. However, considering the diversity of comment systems, although we have adapted the above types of data, many are still not compatible. If you happen to be using an unsupported comment system, besides waiting for official Artalk support, you can also try to understand the Artrans data format and write your own tools for importing and exporting comment data. If you think your tool is well-written, we would be happy to include it, allowing us to create a tool that can freely switch between different comment systems together.
Visit: Artransfer Migration Tool Code Repository