ヌーラボ・バックログのデータをLaravelデータベースへ取り込む。
バックアップ・一括更新・プロジェクト間のデータコピー
Laravel/Lumen
のデータベースにnulab backlog
のデータを取り込んで、解析・構成変更を行って、スケジュールで同期をかけたり、一括変更・一括削除などを作るための土台をつくる。バックログのデータを俯瞰し自由に触れる環境を作るためにプラグインを用意した。
最初に、デーベースのマイグレーションとORMモデルを用意します。
- database/migrations にマイグレーションファイルが一気に作成されます。
- app/models にEloquentモデルが作成されます。
artisan backlog:make:migration:all
artisan backlog:make:models:all
次に、データをBacklogから取り込みます。
backlog:save:project xxProjectKeyxxx --with-issue
データを取り込んだら、あとは閲覧しながらデータを弄くります。
## 例 やりたいことをかく
$cli = new BacklogAPIClient($space, $key);
$cli->deleteComment(111,[...]);
他のアプリケーションにデータを移行するとか、解約後に簡易的にデータ閲覧するなど、データの囲い込みに負けない目的に使えます。
.env
ファイルに BacklogAPIアクセス用のキー
とスペースURL
を書いてください。
BACKLOG_API_KEY=ITZ***********TJ2RpTWkkGT
BACKLOG_SPACE=https://***.backlog.com/
composer config repositories.'takuya/laravel-plugin-nulab-backlog-archiver' \
vcs 'https://github.com/takuya/laravel-plugin-nulab-backlog-archiver'
composer require 'takuya/laravel-plugin-nulab-backlog-archiver'
さくっと試したいとき、開発環境を作りたいときは次のコマンドをコピペしてください。
## laravel/lumenプロジェクトの作成
composer create-project --prefer-dist laravel/lumen my-dev
cd my-dev
## master バージョン指定
composer config minimum-stability dev
composer config prefer-stable true
# インストール
composer config repositories.'takuya/laravel-plugin-nulab-backlog-archiver' \
vcs 'https://github.com/takuya/laravel-plugin-nulab-backlog-archiver'
composer require 'takuya/laravel-plugin-nulab-backlog-archiver':master
composer install
## lumen の場合は、serviceProviderの登録
sed -i '/EventServiceProvider/a $app->register(\\Takuya\\Laravel\\Backlog\\Providers\\AppServiceProvider::class);' bootstrap/app.php
## マイグレーション・モデル作成
php artisan backlog:make:migration:all
php artisan backlog:make:models:all
バックログのAPIが返却するデータはすべてUTCです。データ保存時はUTCで保存することを想定してます。laravel/lumenのタイムゾーン設定はUTCにして、表示時にタイムゾーンに合わせて表示するようにするほうが良いと思います。内部をJSTにすると9時間ズレます。
リレーションのためのManyToMany・OneToManyの中間テーブルは作成していません。Larave Eloquent Mode のキャストを使ってArray/Jsonにキャストしています。
リレーションの必要に応じてモデルを書き換えて使ってください。