list以外のコマンドが正常に作動しない問題を修正しました
概要
『スッキリわかるSQL入門』の演習用データベースをローカル環境で動作させることができるskrsqlの環境構築について備忘録としてここに残します
元のリポジトリは「第3版」用と記載されていますが、Makefileの中では「第4版」の演習SQLを参照するようになっておりますがロジックがおそらく4版用になっておらず私のリポジトリではそのあたりを改良しています
参考:miyabilink/sukkiri-sql4-codes
学校が用意した環境ではなく、自分で構築しようと考える時点である程度の技術的素養がある方が対象だと思うので、説明は簡潔に進めます
本記事では Docker を使った構築方法には触れませんので、その点はあしからず
追記:GitHub Insightsを見たら学内チャットにリンクを貼った日に、クローン数が20を超えていて、とても嬉しかった
この事実だけで、私は救われた気がします
「もしかしたら、ほんの少しでも誰かの役に立てたのかも」と勘違いできるだけで、幸福です
ありがとう、そしてなんかごめん
優しく殺して
使用リポジトリ
元リポジトリ(オリジナル)
改良版(推奨)
※一部の不具合修正・Makefileを第4版用に改善などを行ったフォークです。
必要なパッケージのインストール
ここではaptを使いますが、他のディストリビューションでも基本的には対応可能です(たぶん)。
PostgreSQL,curl,make,git,unzipをインストール
sudo apt update
sudo apt install postgresql curl make git unzip -y
リポジトリのクローン
以下のいずれかをクローンしてください。
オリジナル
git clone https://github.com/densuke/skrsql.git
改良版(推奨)
git clone https://github.com/yuu61/skrsql.git
cd skrsql
ディレクトリの作成とビルド
オリジナル版の場合
オリジナル版では/usr/local/share/ssqlディレクトリが存在しないため、エラーが出ることがあります。あらかじめ作成
自分はこれでうまくいった
sudo mkdir -p /usr/local/share/ssql
次に、自分のユーザーでPostgreSQLを操作できるよう、ユーザーを作成します
sudo -u postgres createuser -s "$(whoami)"
その後、ビルドとインストールを行います。
~/skrsql$ make
~/skrsql$ sudo make install
動作確認
適当にDBを起動してみます。以下のようにskrsql list 1 1コマンドを実行してみてください。
$ skrsql list 1 1
問題ファイル: pre_list0101.sql
--- psql を起動します: 終了するには \q を入力 ---
カーソルキーは利用できません。テキストエディタ等からコマンドを流し込むことを推奨します。
psql (16.9 (Ubuntu 16.9-0ubuntu0.24.04.1))
Type "help" for help.
Can=#
無事に psql が立ち上がれば成功です。お疲れ様でした。
コマンド体系
オリジナル版とコマンド体系を変更しています
skrsql [オプション]
skrsql <オプション>
list <章番号> <問番号>
第XX章 XX問目/本編掲載用のSQL文
summary <章番号>
第XX章「できるようになったこと」掲載用のSQL文(list問題をすべて実行した後の状態)
quiz <章番号> <問番号>
第XX章 章末練習問題掲載用のSQL文
quizans <章番号> <問番号>
第XX章 練習問題解答掲載用のSQL文
apxc <問番号>
付録C.1 特訓ドリル(SQLドリル)第N問
apxd <問番号>
付録D データ分析 第XX問
余談
VirtualBOXよりHyper-VとかWSLの方がよくね?
VirtualBoxよりも軽いし起動も速くて個人的にはおすすめです
参考:起動ボタン押下からコマンド実行可能になるまでの時間
| 環境 | 起動時間 |
|---|---|
| VirtualBox | 65秒 |
| Hyper-V | 12秒 |
| WSL | 2秒 |
Hyper-Vは機能の有効化が必要だったり若干ハードルが高いけど既存の仮想マシンを配布できたりするならそっちの方が有用かも...?