|
|
2 ani în urmă | |
|---|---|---|
| .. | ||
| src | 0ce8ea11a8 add draw.io migration script | 2 ani în urmă |
| README.md | 3f3d726bbc remove unnecessary code | 2 ani în urmă |
Warning Migration in this way is applied only to the latest revision. Past revisions are not applied.
git clone https://github.com/weseek/growi
cd growi/bin/data-migrations
NETWORK=growi_devcontainer_default \
MONGO_URI=mongodb://growi_devcontainer_mongo_1/growi \
docker run --rm \
--network $NETWORK \
-v "$(pwd)"/src:/opt \
-w /opt \
-e MIGRATION_MODULE=v60x \
mongo:6.0 \
/bin/mongosh $MONGO_URI index.js
| Variable | Description | Default |
|---|---|---|
| NETWORK | Network in docker compose of MongoDB server | - |
| MONGO_URI | URI that can connect to MongoDB | - |
| Variable | Description | Default |
|---|---|---|
| MIGRATION_MODULE | Specify migration module | - |
The value of MIGRATION_MODULE is one of the following.
v60x/drawio: Migration for Draw.io notation only(
reference)v60x/plantuml: Migration for PlantUML notation only(
reference)v60x/tsv: Migration for table notation by TSV only(
reference)v60x/csv: Migration for table notation by CSV only(
reference)v60x/bracketlink: Migration for only page links within GROWI(
reference)v60x or v60x/index: Migration for all notations in v6.0.x seriesv61x/mdcont: Migration for mdcont notation only(reference)v61x or v61x/index: Migration for all notations in v6.1.x seriescustom: You can define your own processors and apply them to revision (see "Advanced" below for details)| Variable | Description | Default |
|---|---|---|
| BATCH_SIZE | Number of revisions to be processed at one time(revision) | 100 |
| BATCH_INTERVAL | Interval after batch processing(ms) | 3000 |
※The BATCH_INTERVAL is for server load control. If you don't mind the load of the MongoDB, there is no problem to reduce it.
By creating a function in growi/bin/data-migrations/src/migrations/custom.js that replaces a specific regular expression, you can replace all specific strings in the latest revisions for all pages.
The following function replaces the string foo with the string bar.
module.exports = [
(body) => {
var fooRegExp = /foo/g; // foo regex
return body.replace(fooRegExp, 'bar'); // replace to bar
},
];
By passing custom in the environment variable MIGRATION_MODULE and executing it, you can apply the custom.js to all the latest revisions.
git clone https://github.com/weseek/growi
cd growi/bin/data-migrations
NETWORK=growi_devcontainer_default \
MONGO_URI=mongodb://growi_devcontainer_mongo_1/growi \
docker run --rm \
--network $NETWORK \
-v "$(pwd)"/src:/opt \
-w /opt \
-e MIGRATION_MODULE=custom \
mongo:6.0 \
/bin/mongosh $MONGO_URI index.js