Wordpress
Wordpress is an open source blog system and CMS written in PHP that powers 43% of the web. The system is the most widespread in the world and has been translated into many languages. It is possible to install plugins that dramatically change its functionality. Some state-of-the-art examples include WooCommerce, Yoast SEO, Wordfence, MonsterInsights, CF7, Jetpack, MemberPress.
We incorporate a deep integration with the system's raw data layer via a MySQL connection. This allows us to sync data from the underlying CMS as well as any plugins with persistent data.
Features
Feature name | Supported | |
---|---|---|
Column Hashing | True | Column level |
Blocking | True | Column level |
Incremental | True | Merge, Append |
Custom data | True | |
History | False | |
ReSync | True | Table level |
Templates | False |
Schema information
Wordpress releases their database ERD diagrams for different versions of the system on their Database Description page.
π§ Setup Guide
Due to the access limitations in place, we currently have support only for the self-hosted version of Wordpress.
Read replicas
With high throughput systems, running a high frequency sync with a production database can put unnecessary load onto the running services. One mitigation technique is to create a read replica.
Whitelist Weld's IP pool
Requests from Weld will always come from the following IP pool:
3.64.84.139
3.65.119.169
35.156.133.78
Make sure to whitelist all three of these IP's within your network policies, SSH gateway server or the DB itself. If any updates to the list are ever scheduled to happen, you will be contacted by Weld via email.
Step 1 - Get credentials to setup the connection
From your MySQL Database, access and paste the required fields:
- Name (The name you want to refer to regarding this connection in the Weld app)
- Host (IP Address of your server)
- Database (Name of the database you want to connect to)
The host can be found running the following SQL commands in your MySQL database:
select @@hostname;
show variables where Variable_name like '%host%';
Furthermore, add the port, name and your Weld username and password if desired. You can also connect through an SSH Tunnel.
Step 2 - Data To Sync
Tables can always be updated in the configuration settings of the sync.
- Select the tables you wish to include in the sync.
You can view the schema, remove columns or hash sensitive information. - Update Sync mode:
By default the MySQL connector is set to run always full syncs. To optimize the sync time and reduce processing overhead on your MySQL server we recommend for you to set up the syncs to run incrementally.
We currently support both Merge and Append mode for incremental syncs.
Merge
To have your table running incrementally using the merge configuration you need a table primary key and a cursor timestamp (updated_at
is preferred).
When a sync is run, Weld will select only the new or changed rows since the last update.
Append
If a row updated_at
timestamp is not available on the table then another option is to run an incremental sync using append mode. Append mode uses cursor to keep track of how far the sync got on the last run. It will use that cursor to append new entries at the end of the table on the next run.
Append is not widely used as it does not capture updates in the previous rows.
Full Sync at Midnight
A limitation of both Merge and Append modes is that they do not capture deleted rows. If you expect rows to be deleted often from your tables then you can set a table to run a full sync at midnight which will remove those deleted rows.
Step 3 - Configure Sync
- Select how often you would like the data to sync.
- Provide a unique destination table name.
Weld will take over from here and commence syncing data from your MySQL database.