GitHubリポジトリごとにライセンスを管理するDB(テーブル)を作成した
自作リポジトリのライセンスを管理するために。
成果物
GitHub.Repository.Licenses.Database.Create.201703140912
開発環境
- Linux Mint 17.3 MATE 32bit
- SQLite 3.8.2
前回まで
http://ytyaru.hatenablog.com/entry/2017/08/15/000000
http://ytyaru.hatenablog.com/entry/2017/08/16/000000
http://ytyaru.hatenablog.com/entry/2017/08/21/000000
http://ytyaru.hatenablog.com/entry/2017/08/21/000000
http://ytyaru.hatenablog.com/entry/2017/08/22/000000
ライセンスでのリポジトリ検索や、ライセンス管理の自動化ができるかもしれない。その足がかりとしてDBを作る。
今回DBのベースは以下。
今回
Licensesテーブルを追加する。
create table Licenses( Id integer primary key, RepositoryId integer not null, LicenseId integer, foreign key(RepositoryId) references Repositories(Id) );
自分のリポジトリ管理DBに、ライセンス用テーブルを追加する。
LicenseId
LicenseId
は前回作ったライセンスのマスターDBのLicenses
テーブルのId
列値を使う。ほかのSQLite3ファイルになるため外部キー制約が使えないのが悔しい。
別テーブルにした理由
わざわざRepositoriesテーブルと別にしたのは、複数ライセンス時に複数レコードを作成できるようにしたかったから。しかし、GitHubAPIでは1リポジトリ1ライセンスしか取得できなさそうな感じ。
既存のDBにテーブル新規追加
既存のDBGitHub.Repositories.ytyaru.sqlite3
ファイルにLicenses
テーブルを追加したいときは、今回のLicenses.sql
ファイルを使えばいい。以下のようなコマンドになる。
sqlite3 GitHub.Repositories.ytyaru.sqlite3 < Licenses.sql
これで既存のレコードをそのまま使える。
所感
いまのところ私のリポジトリのライセンスはすべてCC0なのであまり意味はないのだが。