「SQLiteをWebブラウザで管理したい」
「サーバー上のSQLiteをGUIツールで操作したい」
このような場合には、sqlite-webを利用できます。
この記事では、sqlite-webについて解説しています。
本記事の内容
- sqlite-webとは?
- sqlite-webのシステム要件
- sqlite-webのインストール
- sqlite-webの動作確認
それでは、上記に沿って解説していきます。
sqlite-webとは?
sqlite-webは、Pythonで書かれたWebベースのSQLiteデータベース管理ツールです。
PHPのphpMyAdminと同じだと言えば、イメージしやすいでしょう。
次のようなローカルアプリをインストールできない・したくない場合の選択肢となります。
また、サーバー上のSQLiteにアクセスする場合の手段でもあります。
サーバー上でのSQLiteをWindowsからGUIで管理したいこともあるでしょう。
このような場合に、sqlite-webは大いに力を発揮するはずです。
パスワードをかけることもできるので、外部公開も可能になります。
また、Dockerfileとして公開されています。
そのため、PHPメインであってもsqlite-webを使うこともありでしょう。
以上、sqlite-webについての説明でした。
次は、sqlite-webのシステム要件を確認します。
sqlite-webのシステム要件
現時点(2021年10月)でのsqlite-webの最新バージョンは、0.4.0となります。
この最新バージョンは、2021年10月14日にリリースされています。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
サポート対象となるPythonのバージョンは、明示されていません。
ただ、sqlite-webは次のライブラリに依存しています。
- flask
- peewee
- pygments
これらより、Python 3.6以降は必須だと推測可能です。
よって、Python 3.6以降の環境を用意する必要があります。
sqlite-webのシステム要件としては、Python 3.6以降がポイントと言えます。
以上、sqlite-webのシステム要件を説明しました。
次は、sqlite-webをインストールします。
sqlite-webのインストール
検証は、次のPythonバージョンで行います。
>python -V Python 3.9.7
まずは、現状のインストール済みパッケージを確認しておきます。
>pip list Package Version ---------- ------- pip 21.3 setuptools 58.2.0
次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、sqlite-webのインストールです。
sqlite-webのインストールは、以下のコマンドとなります。
pip install sqlite-web
インストールは、すぐに終わります。
では、どんなパッケージがインストールされたのかを確認しましょう。
>pip list Package Version ------------ ------- click 8.0.3 colorama 0.4.4 Flask 2.0.2 itsdangerous 2.0.1 Jinja2 3.0.2 MarkupSafe 2.0.1 peewee 3.14.4 pip 21.3 Pygments 2.10.0 setuptools 58.2.0 sqlite-web 0.4.0 Werkzeug 2.0.2
それなりに依存関係のあるパッケージが存在しています。
これだけ多いとPythonの仮想環境を利用した方がよいでしょう。
Windowsなら、IDEにPyCharmを使えば簡単に仮想環境を利用できます。
プロジェクト(今回ならsqlite-web用)毎に仮想環境となります。
また、以下のようにコマンドでも簡単に仮想環境を利用できます。
Linuxサーバーで動かす場合には、こちらとなるでしょう。
以上、 sqlite-webのインストールについて説明しました。
最後は、 sqlite-webの動作確認を行います。
sqlite-webの動作確認
sqlite-webの利用方法は、以下。
sqliteのデータベースファイルを指定するだけです。
sqlite_web /path/to/database.db
オプションには、次のモノがあります。
>sqlite_web -h Usage: sqlite_web [options] Options: -h, --help show this help message and exit -p PORT, --port=PORT Port for web interface, default=8080 -H HOST, --host=HOST Host for web interface, default=127.0.0.1 -d, --debug Run server in debug mode -x, --no-browser Do not automatically open browser page. -P, --password Prompt for password to access database browser. -r, --read-only Open database in read-only mode. -u URL_PREFIX, --url-prefix=URL_PREFIX URL prefix for application. -e EXTENSIONS, --extension=EXTENSIONS Path or name of loadable extension. SSL options: -c SSL_CERT, --ssl-cert=SSL_CERT SSL certificate file path. -k SSL_KEY, --ssl-key=SSL_KEY SSL private key file path. -a, --ad-hoc Use ad-hoc SSL context.
ここでは、SQLite用サンプルデータを利用します。
SQLite用サンプルデータについては、次の記事で説明しています。
ダウンロード・解凍した「chinook.db」を適当な場所に保存します。
sqlite_web C:\data\chinook.db
上記コマンドを実行すると、次のように表示されます。
>sqlite_web C:\data\chinook.db * Serving Flask app 'sqlite_web.sqlite_web' (lazy loading) * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: off * Running on http://127.0.0.1:8080/ (Press CTRL+C to quit) 127.0.0.1 - - [19/Oct/2021 10:08:57] "GET / HTTP/1.1" 200 - 127.0.0.1 - - [19/Oct/2021 10:08:58] "GET /static/js/bootstrap.bundle.min.js HTTP/1.1" 304 - 127.0.0.1 - - [19/Oct/2021 10:08:58] "GET /static/css/bootstrap.min.css HTTP/1.1" 304 - 127.0.0.1 - - [19/Oct/2021 10:08:58] "GET /static/css/syntax-highlight.css HTTP/1.1" 304 - 127.0.0.1 - - [19/Oct/2021 10:08:58] "GET /static/css/sqlbrowse.css HTTP/1.1" 304 - 127.0.0.1 - - [19/Oct/2021 10:08:58] "GET /static/js/jquery-1.11.0.min.js HTTP/1.1" 304 -
同時にブラウザが起動します。
アドレスは、「http://127.0.0.1:8080/」です。
ここまで確認できれば、sqlite-webの動作確認としては十分です。
以上、sqlite-webの動作確認の説明でした。