看板工具 wekan 完全使用指南

栏目: 数据库 · 发布时间: 7年前

内容简介:内容太多,拆分几篇博客写。以 mongodb 数据库配置为例,在上述配置中,有一段配置如下:这里配置了 mongodb 默认绑定的 IP,使用 127.0.0.1 的情况下,外网无法访问该 mongodb。

wekan 介绍

内容太多,拆分几篇博客写。

snapd 安装

snapd 配置

wekan snap 方式配置

以 mongodb 数据库配置为例,在上述配置中,有一段配置如下:

DESCRIPTION_MONGODB_BIND_IP="mongodb binding ip address: eg 127.0.0.1 for localhost\n\t\tIf not defined default unix socket is used instead"
DEFAULT_MONGODB_BIND_IP="127.0.0.1"
KEY_MONGODB_BIND_IP="mongodb-bind-ip"

这里配置了 mongodb 默认绑定的 IP,使用 127.0.0.1 的情况下,外网无法访问该 mongodb。

官方 snap wekan 使用文档: https://github.com/wekan/wekan-snap/wiki/Install

根据文档介绍,执行下面的命令修改配置:

snap set wekan mongodb-bind-ip="0.0.0.0"

不需要重启,此时外网就可以访问该地址了,其他配置修改方式类似。

需要重启时,执行下面的命令:

systemctl restart snap.wekan.wekan

mongodb 文档: https://docs.mongodb.com/manual/crud/

复杂处理

发现看板过一段时间 CPU 就 100%.

为了测试修改配置,cp 了 /snap/wekan/381/bin 目录到别的位置(/home/redis/wekan/bin),然后修改配置。

通过 sudo mount --bind /home/redis/wekan/bin /snap/wekan/381/bin/ 将改后的配置挂载到原位置进行替换。

测试以后,还需要通过下面代码解除挂载:

umount /home/redis/wekan/bin

查看 node 负载时,用到了工具 tick: https://github.com/sidorares/node-tick

wekan 虽然通过 node --prof main.js 运行了,但是并没有产生 v8.log 文件。

wekan 端口和域名

mango 外网访问

备份还原

参考脚本: https://github.com/wekan/wekan/wiki/Backup

下面脚本都是针对 mongo 使用 27019 端口,如果不一致需要自己修改。

备份脚本 mongodump.sh :

#!/bin/bash

makeDump()
{
    # Gets the version of the snap.
    version=$(snap list | grep wekan | awk -F ' ' '{print $3}')

    # Prepares.
    now=$(date +'%Y-%m-%d_%H.%M.%S')
    mkdir -p /var/backups/wekan/$version-$now

    # Targets the dump file.
    # 官方下面写的 dump=$"... 导致无法运行,这里去掉了$
    dump="/snap/wekan/$version/bin/mongodump"

    # Makes the backup.
    cd /var/backups/wekan/$version-$now
    printf "\nThe database backup is in progress.\n\n"
    $dump --port 27019

    # Makes the tar.gz file.
    cd ..
    printf "\nMakes the tar.gz file.\n"
    tar -zcvf $version-$now.tar.gz $version-$now

    # Cleanups
    rm -rf $version-$now

    # End.
    printf "\nBackup done.\n"
    echo "Backup is archived to .tar.gz file at /var/backups/wekan/${version}-${now}.tar.gz"
}

# Checks is the user is sudo/root
if [ "$UID" -ne "0" ]
then
    echo "This program must be launched with sudo/root."
    exit 1
fi

# Starts
makeDump

创建脚本后加执行权限。

执行备份输出的日志:

liuzh@liuzh:~/mongo$ sudo ./mongodump.sh 

The database backup is in progress.

2019-01-13T01:59:40.034+0000	writing wekan.meteor-migrations to 
2019-01-13T01:59:40.034+0000	writing wekan.activities to 
2019-01-13T01:59:40.035+0000	writing wekan.presences to 
2019-01-13T01:59:40.035+0000	writing wekan.lists to 
2019-01-13T01:59:40.036+0000	done dumping wekan.meteor-migrations (27 documents)
2019-01-13T01:59:40.037+0000	writing wekan.swimlanes to 
2019-01-13T01:59:40.037+0000	done dumping wekan.activities (11 documents)
2019-01-13T01:59:40.037+0000	writing wekan.accountSettings to 
2019-01-13T01:59:40.038+0000	done dumping wekan.presences (8 documents)
2019-01-13T01:59:40.039+0000	writing wekan.boards to 
2019-01-13T01:59:40.040+0000	done dumping wekan.swimlanes (2 documents)
2019-01-13T01:59:40.040+0000	writing wekan.announcements to 
2019-01-13T01:59:40.040+0000	done dumping wekan.accountSettings (2 documents)
2019-01-13T01:59:40.041+0000	writing wekan.settings to 
2019-01-13T01:59:40.041+0000	done dumping wekan.boards (2 documents)
2019-01-13T01:59:40.042+0000	writing wekan.users to 
2019-01-13T01:59:40.042+0000	done dumping wekan.settings (1 document)
2019-01-13T01:59:40.042+0000	writing wekan.card_comments to 
2019-01-13T01:59:40.042+0000	done dumping wekan.announcements (1 document)
2019-01-13T01:59:40.043+0000	writing wekan.meteor_accounts_loginServiceConfiguration to 
2019-01-13T01:59:40.043+0000	done dumping wekan.lists (7 documents)
2019-01-13T01:59:40.044+0000	writing wekan.checklistItems to 
2019-01-13T01:59:40.044+0000	done dumping wekan.card_comments (0 documents)
2019-01-13T01:59:40.045+0000	writing wekan.cards to 
2019-01-13T01:59:40.045+0000	done dumping wekan.checklistItems (0 documents)
2019-01-13T01:59:40.045+0000	writing wekan.checklists to 
2019-01-13T01:59:40.046+0000	done dumping wekan.meteor_accounts_loginServiceConfiguration (0 documents)
2019-01-13T01:59:40.046+0000	writing wekan.meteor_oauth_pendingCredentials to 
2019-01-13T01:59:40.046+0000	done dumping wekan.users (1 document)
2019-01-13T01:59:40.046+0000	writing wekan.invitation_codes to 
2019-01-13T01:59:40.047+0000	done dumping wekan.cards (0 documents)
2019-01-13T01:59:40.047+0000	writing wekan.unsaved-edits to 
2019-01-13T01:59:40.047+0000	done dumping wekan.checklists (0 documents)
2019-01-13T01:59:40.048+0000	done dumping wekan.unsaved-edits (0 documents)
2019-01-13T01:59:40.048+0000	done dumping wekan.meteor_oauth_pendingCredentials (0 documents)
2019-01-13T01:59:40.048+0000	done dumping wekan.invitation_codes (0 documents)

Makes the tar.gz file.
381-2019-01-13_01.59.39/
381-2019-01-13_01.59.39/dump/
381-2019-01-13_01.59.39/dump/wekan/
381-2019-01-13_01.59.39/dump/wekan/meteor_oauth_pendingCredentials.metadata.json
381-2019-01-13_01.59.39/dump/wekan/unsaved-edits.metadata.json
381-2019-01-13_01.59.39/dump/wekan/meteor-migrations.metadata.json
381-2019-01-13_01.59.39/dump/wekan/boards.metadata.json
381-2019-01-13_01.59.39/dump/wekan/card_comments.metadata.json
381-2019-01-13_01.59.39/dump/wekan/cards.metadata.json
381-2019-01-13_01.59.39/dump/wekan/activities.bson
381-2019-01-13_01.59.39/dump/wekan/announcements.metadata.json
381-2019-01-13_01.59.39/dump/wekan/users.bson
381-2019-01-13_01.59.39/dump/wekan/presences.metadata.json
381-2019-01-13_01.59.39/dump/wekan/lists.metadata.json
381-2019-01-13_01.59.39/dump/wekan/accountSettings.metadata.json
381-2019-01-13_01.59.39/dump/wekan/settings.bson
381-2019-01-13_01.59.39/dump/wekan/users.metadata.json
381-2019-01-13_01.59.39/dump/wekan/meteor_oauth_pendingCredentials.bson
381-2019-01-13_01.59.39/dump/wekan/unsaved-edits.bson
381-2019-01-13_01.59.39/dump/wekan/checklistItems.metadata.json
381-2019-01-13_01.59.39/dump/wekan/meteor_accounts_loginServiceConfiguration.metadata.json
381-2019-01-13_01.59.39/dump/wekan/accountSettings.bson
381-2019-01-13_01.59.39/dump/wekan/presences.bson
381-2019-01-13_01.59.39/dump/wekan/invitation_codes.bson
381-2019-01-13_01.59.39/dump/wekan/settings.metadata.json
381-2019-01-13_01.59.39/dump/wekan/meteor_accounts_loginServiceConfiguration.bson
381-2019-01-13_01.59.39/dump/wekan/invitation_codes.metadata.json
381-2019-01-13_01.59.39/dump/wekan/boards.bson
381-2019-01-13_01.59.39/dump/wekan/cards.bson
381-2019-01-13_01.59.39/dump/wekan/swimlanes.bson
381-2019-01-13_01.59.39/dump/wekan/lists.bson
381-2019-01-13_01.59.39/dump/wekan/checklists.metadata.json
381-2019-01-13_01.59.39/dump/wekan/meteor-migrations.bson
381-2019-01-13_01.59.39/dump/wekan/announcements.bson
381-2019-01-13_01.59.39/dump/wekan/checklistItems.bson
381-2019-01-13_01.59.39/dump/wekan/swimlanes.metadata.json
381-2019-01-13_01.59.39/dump/wekan/checklists.bson
381-2019-01-13_01.59.39/dump/wekan/activities.metadata.json
381-2019-01-13_01.59.39/dump/wekan/card_comments.bson

Backup done.
Backup is archived to .tar.gz file at /var/backups/wekan/381-2019-01-13_01.59.39.tar.gz

还原脚本 mongorestore.sh :

#!/bin/bash

makesRestore()
{
    # Prepares the folder used for the backup.
    file=$1
    if [[ "$file" != *tar.gz* ]]
    then
        echo "The backup archive must be a tar.gz."
        exit -1
    fi

    # Goes into the parent directory.
    ext=$"$(basename $file)"
    parentDir=$"${file:0:${#file}-${#ext}}"
    cd $parentDir

    # Untar the archive.
    printf "\nMakes the untar of the archive.\n"
    tar -zxvf $file
    file="${file:0:${#file}-7}"
    
    # Gets the version of the snap.
    version=$(snap list | grep wekan | awk -F ' ' '{print $3}')

    # Targets the dump file.
    # 官方下面写的 restore=$"... 导致无法运行,这里去掉了$
    restore="/snap/wekan/$version/bin/mongorestore"

    # Restores.
    printf "\nThe database restore is in progress.\n\n"
    $restore -d wekan --port 27019 $file/dump/wekan
    printf "\nRestore done.\n"

    # Cleanups
    rm -rf $file
}

# Checks is the user is sudo/root.
if [ "$UID" -ne "0" ]
then
    echo "This program must be launched with sudo/root."
    exit 1
fi


# Start.
makesRestore $1

执行这个脚本的时候,需要提供一个参数,就是备份文件的路径:

liuzh@liuzh:~/mongo$ sudo ./mongorestore.sh /var/backups/wekan/381-2019-01-13_01.59.39.tar.gz

Makes the untar of the archive.
381-2019-01-13_01.59.39/
381-2019-01-13_01.59.39/dump/
381-2019-01-13_01.59.39/dump/wekan/
381-2019-01-13_01.59.39/dump/wekan/meteor_oauth_pendingCredentials.metadata.json
381-2019-01-13_01.59.39/dump/wekan/unsaved-edits.metadata.json
381-2019-01-13_01.59.39/dump/wekan/meteor-migrations.metadata.json
381-2019-01-13_01.59.39/dump/wekan/boards.metadata.json
381-2019-01-13_01.59.39/dump/wekan/card_comments.metadata.json
381-2019-01-13_01.59.39/dump/wekan/cards.metadata.json
381-2019-01-13_01.59.39/dump/wekan/activities.bson
381-2019-01-13_01.59.39/dump/wekan/announcements.metadata.json
381-2019-01-13_01.59.39/dump/wekan/users.bson
381-2019-01-13_01.59.39/dump/wekan/presences.metadata.json
381-2019-01-13_01.59.39/dump/wekan/lists.metadata.json
381-2019-01-13_01.59.39/dump/wekan/accountSettings.metadata.json
381-2019-01-13_01.59.39/dump/wekan/settings.bson
381-2019-01-13_01.59.39/dump/wekan/users.metadata.json
381-2019-01-13_01.59.39/dump/wekan/meteor_oauth_pendingCredentials.bson
381-2019-01-13_01.59.39/dump/wekan/unsaved-edits.bson
381-2019-01-13_01.59.39/dump/wekan/checklistItems.metadata.json
381-2019-01-13_01.59.39/dump/wekan/meteor_accounts_loginServiceConfiguration.metadata.json
381-2019-01-13_01.59.39/dump/wekan/accountSettings.bson
381-2019-01-13_01.59.39/dump/wekan/presences.bson
381-2019-01-13_01.59.39/dump/wekan/invitation_codes.bson
381-2019-01-13_01.59.39/dump/wekan/settings.metadata.json
381-2019-01-13_01.59.39/dump/wekan/meteor_accounts_loginServiceConfiguration.bson
381-2019-01-13_01.59.39/dump/wekan/invitation_codes.metadata.json
381-2019-01-13_01.59.39/dump/wekan/boards.bson
381-2019-01-13_01.59.39/dump/wekan/cards.bson
381-2019-01-13_01.59.39/dump/wekan/swimlanes.bson
381-2019-01-13_01.59.39/dump/wekan/lists.bson
381-2019-01-13_01.59.39/dump/wekan/checklists.metadata.json
381-2019-01-13_01.59.39/dump/wekan/meteor-migrations.bson
381-2019-01-13_01.59.39/dump/wekan/announcements.bson
381-2019-01-13_01.59.39/dump/wekan/checklistItems.bson
381-2019-01-13_01.59.39/dump/wekan/swimlanes.metadata.json
381-2019-01-13_01.59.39/dump/wekan/checklists.bson
381-2019-01-13_01.59.39/dump/wekan/activities.metadata.json
381-2019-01-13_01.59.39/dump/wekan/card_comments.bson

The database restore is in progress.

2019-01-13T02:00:18.060+0000	building a list of collections to restore from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan dir
2019-01-13T02:00:18.063+0000	reading metadata for wekan.activities from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/activities.metadata.json
2019-01-13T02:00:18.063+0000	restoring wekan.activities from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/activities.bson
2019-01-13T02:00:18.064+0000	reading metadata for wekan.meteor-migrations from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/meteor-migrations.metadata.json
2019-01-13T02:00:18.064+0000	reading metadata for wekan.presences from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/presences.metadata.json
2019-01-13T02:00:18.065+0000	restoring wekan.presences from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/presences.bson
2019-01-13T02:00:18.066+0000	reading metadata for wekan.boards from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/boards.metadata.json
2019-01-13T02:00:18.068+0000	restoring wekan.meteor-migrations from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/meteor-migrations.bson
2019-01-13T02:00:18.069+0000	restoring wekan.boards from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/boards.bson
2019-01-13T02:00:18.070+0000	error: multiple errors in bulk operation:
  - E11000 duplicate key error collection: wekan.activities index: _id_ dup key: { : "dEzSdZyy5zKSq5eXS" }
  - E11000 duplicate key error collection: wekan.activities index: _id_ dup key: { : "E3TGZFhwfrSypdoEh" }
  - E11000 duplicate key error collection: wekan.activities index: _id_ dup key: { : "dCosFe4D2EaBAH37K" }
  - E11000 duplicate key error collection: wekan.activities index: _id_ dup key: { : "sSPPGNuxR2kwFMGkK" }
  - E11000 duplicate key error collection: wekan.activities index: _id_ dup key: { : "HKaH6uPF2pJvPiekq" }
  - E11000 duplicate key error collection: wekan.activities index: _id_ dup key: { : "cn8ihiwKANHCeteB2" }
  - E11000 duplicate key error collection: wekan.activities index: _id_ dup key: { : "5tjQ4zPccfjNxZ8ay" }
  - E11000 duplicate key error collection: wekan.activities index: _id_ dup key: { : "KKsgxGWsMmDtTEjYT" }
  - E11000 duplicate key error collection: wekan.activities index: _id_ dup key: { : "KXSusvoFnmAcvw9YX" }
  - E11000 duplicate key error collection: wekan.activities index: _id_ dup key: { : "q4oBQnZMqe2RXE5Lt" }
  - E11000 duplicate key error collection: wekan.activities index: _id_ dup key: { : "i3qCmn2Nfn774Mfj6" }

2019-01-13T02:00:18.073+0000	restoring indexes for collection wekan.activities from metadata
2019-01-13T02:00:18.073+0000	error: multiple errors in bulk operation:
  - E11000 duplicate key error collection: wekan.presences index: _id_ dup key: { : "jfmAbmnQrPj7dkFnT" }
  - E11000 duplicate key error collection: wekan.presences index: _id_ dup key: { : "umhZMdxjEqN9HosWj" }
  - E11000 duplicate key error collection: wekan.presences index: _id_ dup key: { : "arWJiyAYZHy3K9Nxe" }
  - E11000 duplicate key error collection: wekan.presences index: _id_ dup key: { : "a5HEoG8w4AxLJ89xv" }
  - E11000 duplicate key error collection: wekan.presences index: _id_ dup key: { : "B7fYLj5k9tmKZSkEi" }
  - E11000 duplicate key error collection: wekan.presences index: _id_ dup key: { : "QhKyTjzCujZZdN9r7" }
  - E11000 duplicate key error collection: wekan.presences index: _id_ dup key: { : "zrsm9YpjLfu9nR4qj" }
  - E11000 duplicate key error collection: wekan.presences index: _id_ dup key: { : "oCRPqHBFPTWk6M4fZ" }

2019-01-13T02:00:18.075+0000	restoring indexes for collection wekan.presences from metadata
2019-01-13T02:00:18.076+0000	finished restoring wekan.presences (8 documents)
2019-01-13T02:00:18.076+0000	reading metadata for wekan.lists from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/lists.metadata.json
2019-01-13T02:00:18.076+0000	restoring wekan.lists from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/lists.bson
2019-01-13T02:00:18.077+0000	error: E11000 duplicate key error collection: wekan.boards index: _id_ dup key: { : "pN3u3CwAHprMmK7bn" }
2019-01-13T02:00:18.081+0000	restoring indexes for collection wekan.boards from metadata
2019-01-13T02:00:18.081+0000	finished restoring wekan.activities (11 documents)
2019-01-13T02:00:18.082+0000	reading metadata for wekan.users from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/users.metadata.json
2019-01-13T02:00:18.084+0000	finished restoring wekan.boards (2 documents)
2019-01-13T02:00:18.084+0000	reading metadata for wekan.swimlanes from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/swimlanes.metadata.json
2019-01-13T02:00:18.084+0000	restoring wekan.users from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/users.bson
2019-01-13T02:00:18.085+0000	restoring wekan.swimlanes from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/swimlanes.bson
2019-01-13T02:00:18.163+0000	error: multiple errors in bulk operation:
  - E11000 duplicate key error collection: wekan.lists index: _id_ dup key: { : "koin6kWCYzEfgrGrw" }
  - E11000 duplicate key error collection: wekan.lists index: _id_ dup key: { : "w6fNdtNCxBfJCMwXm" }
  - E11000 duplicate key error collection: wekan.lists index: _id_ dup key: { : "vZDKydEKuess5jj6X" }
  - E11000 duplicate key error collection: wekan.lists index: _id_ dup key: { : "YYsK7HxsNYxkYx8ja" }
  - E11000 duplicate key error collection: wekan.lists index: _id_ dup key: { : "izwCbsswZCrQh3h5E" }
  - E11000 duplicate key error collection: wekan.lists index: _id_ dup key: { : "N2Gg9hacbaFKfHr8F" }
  - E11000 duplicate key error collection: wekan.lists index: _id_ dup key: { : "uJKQem7fCkw9ax6dq" }

2019-01-13T02:00:18.163+0000	restoring indexes for collection wekan.lists from metadata
2019-01-13T02:00:18.164+0000	error: multiple errors in bulk operation:
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "kJ8MFwPkpPRhAkDvN" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "3AkJAy6a7d6w2rYJn" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "Bv3i2uneKu8MehCpR" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "h3zT3mdwuibn5NCjg" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "Tny7QSD8aeugZYqTn" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "p6Sd749FYwRKbovRg" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "MqpwTt93spsukcghQ" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "Bcv3hYYJBRoD8dnQZ" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "ftqMsDwyszdQfZjAY" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "GNmsuoKztz8btbxSP" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "fMwwwnjBinPbYyezk" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "TWj4jN8wRL5e9WPZM" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "mEDmyi57S28rZWjYx" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "k4fh3Cc6QTEX6TNco" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "4z3aiRqHh8QArF4ne" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "ragMDEPzKKhpRQDXw" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "XTHDJ6wAB7wAPwpFb" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "GH2pGLBqKRkyxXpsA" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "jdHCGJ24njW74786h" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "nTzxmhwduhZHx539f" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "acQYbQus6a7JGfu33" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "CqHKAfN3fgwDXFifD" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "L6m3hhFwrZTsPdm3h" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "pdcqPAcjYv9AnHSTA" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "8aArFSXN7zJn9dbe5" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "a3RDJeRiska69okmv" }
  - E11000 duplicate key error collection: wekan.meteor-migrations index: _id_ dup key: { : "7NPkHwKJvzTZtGyKA" }

2019-01-13T02:00:18.164+0000	restoring indexes for collection wekan.meteor-migrations from metadata
2019-01-13T02:00:18.170+0000	finished restoring wekan.lists (7 documents)
2019-01-13T02:00:18.170+0000	reading metadata for wekan.settings from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/settings.metadata.json
2019-01-13T02:00:18.170+0000	restoring wekan.settings from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/settings.bson
2019-01-13T02:00:18.184+0000	error: E11000 duplicate key error collection: wekan.users index: _id_ dup key: { : "jLRat37oF72u9LsTA" }
2019-01-13T02:00:18.185+0000	restoring indexes for collection wekan.users from metadata
2019-01-13T02:00:18.185+0000	finished restoring wekan.meteor-migrations (27 documents)
2019-01-13T02:00:18.185+0000	reading metadata for wekan.accountSettings from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/accountSettings.metadata.json
2019-01-13T02:00:18.185+0000	restoring wekan.accountSettings from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/accountSettings.bson
2019-01-13T02:00:18.187+0000	error: E11000 duplicate key error collection: wekan.settings index: _id_ dup key: { : "psWJ96GC76K6nrja4" }
2019-01-13T02:00:18.187+0000	restoring indexes for collection wekan.settings from metadata
2019-01-13T02:00:18.187+0000	finished restoring wekan.settings (1 document)
2019-01-13T02:00:18.187+0000	reading metadata for wekan.announcements from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/announcements.metadata.json
2019-01-13T02:00:18.187+0000	restoring wekan.announcements from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/announcements.bson
2019-01-13T02:00:18.595+0000	finished restoring wekan.users (1 document)
2019-01-13T02:00:18.598+0000	reading metadata for wekan.checklistItems from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/checklistItems.metadata.json
2019-01-13T02:00:18.600+0000	restoring wekan.checklistItems from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/checklistItems.bson
2019-01-13T02:00:18.606+0000	error: multiple errors in bulk operation:
  - E11000 duplicate key error collection: wekan.swimlanes index: _id_ dup key: { : "96aTCQM2hbSs4A7s6" }
  - E11000 duplicate key error collection: wekan.swimlanes index: _id_ dup key: { : "53AkraNrecsgNT8D6" }

2019-01-13T02:00:18.608+0000	error: E11000 duplicate key error collection: wekan.announcements index: _id_ dup key: { : "WqfhQAx6Dw8fsHFxr" }
2019-01-13T02:00:18.609+0000	error: multiple errors in bulk operation:
  - E11000 duplicate key error collection: wekan.accountSettings index: _id_ dup key: { : "accounts-allowEmailChange" }
  - E11000 duplicate key error collection: wekan.accountSettings index: _id_ dup key: { : "accounts-allowUserNameChange" }

2019-01-13T02:00:18.610+0000	restoring indexes for collection wekan.swimlanes from metadata
2019-01-13T02:00:18.611+0000	restoring indexes for collection wekan.checklistItems from metadata
2019-01-13T02:00:18.611+0000	restoring indexes for collection wekan.announcements from metadata
2019-01-13T02:00:18.612+0000	restoring indexes for collection wekan.accountSettings from metadata
2019-01-13T02:00:18.612+0000	finished restoring wekan.checklistItems (0 documents)
2019-01-13T02:00:18.612+0000	reading metadata for wekan.card_comments from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/card_comments.metadata.json
2019-01-13T02:00:18.612+0000	restoring wekan.card_comments from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/card_comments.bson
2019-01-13T02:00:18.615+0000	finished restoring wekan.swimlanes (2 documents)
2019-01-13T02:00:18.616+0000	reading metadata for wekan.meteor_oauth_pendingCredentials from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/meteor_oauth_pendingCredentials.metadata.json
2019-01-13T02:00:18.617+0000	restoring wekan.meteor_oauth_pendingCredentials from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/meteor_oauth_pendingCredentials.bson
2019-01-13T02:00:19.069+0000	restoring indexes for collection wekan.card_comments from metadata
2019-01-13T02:00:19.069+0000	finished restoring wekan.announcements (1 document)
2019-01-13T02:00:19.069+0000	reading metadata for wekan.checklists from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/checklists.metadata.json
2019-01-13T02:00:19.070+0000	restoring wekan.checklists from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/checklists.bson
2019-01-13T02:00:19.077+0000	finished restoring wekan.card_comments (0 documents)
2019-01-13T02:00:19.077+0000	reading metadata for wekan.invitation_codes from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/invitation_codes.metadata.json
2019-01-13T02:00:19.078+0000	restoring wekan.invitation_codes from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/invitation_codes.bson
2019-01-13T02:00:19.078+0000	restoring indexes for collection wekan.meteor_oauth_pendingCredentials from metadata
2019-01-13T02:00:19.079+0000	finished restoring wekan.meteor_oauth_pendingCredentials (0 documents)
2019-01-13T02:00:19.079+0000	reading metadata for wekan.cards from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/cards.metadata.json
2019-01-13T02:00:19.079+0000	restoring wekan.cards from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/cards.bson
2019-01-13T02:00:19.080+0000	finished restoring wekan.accountSettings (2 documents)
2019-01-13T02:00:19.081+0000	reading metadata for wekan.unsaved-edits from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/unsaved-edits.metadata.json
2019-01-13T02:00:19.081+0000	restoring wekan.unsaved-edits from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/unsaved-edits.bson
2019-01-13T02:00:19.429+0000	restoring indexes for collection wekan.checklists from metadata
2019-01-13T02:00:19.455+0000	finished restoring wekan.checklists (0 documents)
2019-01-13T02:00:19.458+0000	reading metadata for wekan.meteor_accounts_loginServiceConfiguration from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/meteor_accounts_loginServiceConfiguration.metadata.json
2019-01-13T02:00:19.458+0000	restoring wekan.meteor_accounts_loginServiceConfiguration from /var/backups/wekan/381-2019-01-13_01.59.39/dump/wekan/meteor_accounts_loginServiceConfiguration.bson
2019-01-13T02:00:19.458+0000	restoring indexes for collection wekan.cards from metadata
2019-01-13T02:00:19.459+0000	restoring indexes for collection wekan.unsaved-edits from metadata
2019-01-13T02:00:19.460+0000	restoring indexes for collection wekan.meteor_accounts_loginServiceConfiguration from metadata
2019-01-13T02:00:19.461+0000	restoring indexes for collection wekan.invitation_codes from metadata
2019-01-13T02:00:19.462+0000	finished restoring wekan.unsaved-edits (0 documents)
2019-01-13T02:00:19.462+0000	finished restoring wekan.cards (0 documents)
2019-01-13T02:00:19.462+0000	finished restoring wekan.meteor_accounts_loginServiceConfiguration (0 documents)
2019-01-13T02:00:19.462+0000	finished restoring wekan.invitation_codes (0 documents)
2019-01-13T02:00:19.462+0000	done

Restore done.

基于 snap 的定制开发

liuzh@liuzh:~/mongo$ snap find wekan
Name         Version          Publisher  Notes  Summary
wekan-ondra  1.49-2-gbfabd63  ondra      -      The open-source Trello-like kanban
wekan-liuzh  2.01-1-g59b8b97  liuzh      -      The open-source kanban
wekan        2.01             xet7       -      Open-Source kanban

clone https://github.com/wekan/wekan,注册 https://snapcraft.io

注册名的BUG解决办法:


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

Distributed Systems

Distributed Systems

Sukumar Ghosh / Chapman and Hall/CRC / 2014-7-14 / USD 119.95

Distributed Systems: An Algorithmic Approach, Second Edition provides a balanced and straightforward treatment of the underlying theory and practical applications of distributed computing. As in the p......一起来看看 《Distributed Systems》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具