Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (2.5%) to scientific vocabulary
Repository
a DB App with docker
Basic Info
- Host: GitHub
- Owner: NbtKmy
- License: mit
- Language: Python
- Default Branch: main
- Size: 139 KB
Statistics
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 1
Metadata Files
README.md
日本学関連データベースリストのデータベースつくった
DockerとDocker-composeさえあれば動くデータベースです。 MySQLとFlaskで作っていて、APIでデータをJSON形式でゲットげきます。 APIはゲットのみ用意しました。 データベースに更新がある場合はCronでグーグルスプレッドシートのデータをとりにゆきます。
データベースのインストールなど
まずgitなどでこのリポジトリをクローンしてください。
その後クローンしてきた最上位のフォルダに.envファイルを作って必要な環境変数を作成してください。
MYSQL_DATABASE=[データベースのなまえ]
MYSQL_USER=[MySQLを操作するユーザー名]
MYSQL_PASSWORD=[ユーザーのパスワード]
MYSQL_ROOT_PASSWORD=[ルートユーザーのパスワード]
ファイルを作成したら、docker-compose.ymlが入っているディレクトリにはいって、
docker-composeコマンドでイメージ・コンテナ作成、コンテナ起動を行ってください。
こんな感じ
$ cd ./db_app
$ docker-compose build
$ docker-compose up -d
ここには2つのコンテナが入っていて、一つがMySQL, 一つがFlaskのAPIを動かしています。 FlaskのはいったコンテナはMySQLのコンテナのヘルスチェックがすんでから起動するので、 少し時間がかかります。(30秒くらい) また、データベースが入っているコンテナのなかでcronをつかってデータべースを更新するので以下のコマンドでDockerに入り、 さらにcronを起動してください。
``` $ docker-compose exec mysql bash
以下コンテナ内から実行
$ sh /scripts/for_cron.sh $ service cron start ```
cronジョブはデフォルトで毎週月曜の4時59分に動くようにしてあります。 そしてそれにあわせてbackendのコンテナを再起動させてあげてください。
```
ホストのCronで
10 05 * * 0 docker-compose restart backend ```
無事起動したら、以下のURLでアクセスできるはず。
localhost:5050
APIについては以下を参照してください。
APIについて
APIは以下の4つのクエリが可能です。 1. localhost:5050/creator/all
データベースを作成したすべての団体名を表示。
- localhost:5050/creator/search
データベースを作成した団体を検索。
パラメータは以下のとうりです。
- id = 団体データのid
- name_ja = 団体の日本語名
- name_en = 団体の英語名
- altnames = その他の団体名
クエリの作り方・例
localhost:5050/creator/search?name_ja=国立&altnames=NDL
結果は20件ごとにページで区切って表示されます。 ページ指定、最高件数変更などは以下のパラメータでできます。
- page = ページ指定
- per_page = ページあたりの最高件数
- localhost:5050/databaselist/all
登録されたすべてのデータベース表示。
- localhost:5050/databaselist/search
データべースの検索。 パラメータは以下のとうり。
- id = データベースのid
- title_ja = データベースの日本語タイトル
- title_en = データベースの英語タイトル
- creator_id = データベースを作成した団体のid
- ddc_category = データベースのDDCカテゴリ(3桁のアラビア数字を文字列として、たとえば"900"など)
- type = メディアタイプ
- description_ja = データベースの日本語の説明
- description_en = データベースの英語の説明
結果は20件ごとにページで区切って表示されます。 ページ指定、最高件数変更などは以下のパラメータでできます。 - page = ページ指定 - per_page = ページあたりの最高件数
Owner
- Name: Nobutake Kamiya
- Login: NbtKmy
- Kind: user
- Location: Zürich
- Repositories: 4
- Profile: https://github.com/NbtKmy
Citation (CITATION.cff)
cff-version: 1.2.0
authors:
- family-names: Kamiya
given-names: Nobutake
orcid: https://orcid.org/0000-0002-5755-3322
title: "DB-App (Database Application)"
version: 1.0.0
doi: 10.5281/zenodo.8381877
date-released: 2023-09-26
GitHub Events
Total
Last Year
Dependencies
- python 3.7 build
- mysql 8-debian
- mysql 8-debian build
- PyMySQL *
- flask *
- flask-cors *
- flask-restful *
- flask-sqlalchemy *
- flask_marshmallow *
- gunicorn *
- marshmallow-sqlalchemy *
- sqlalchemy *
- sqlalchemy_utils *