idとauto increment
DB設計するときのIDカラムについて。
昔ながらのシステムだと、auto increment使って連番が定番だと思うのだけど、PocketBaseでCollectionにRecord追加したとき、idは1ldTBeJNhX3jufu
みたいな文字列が割り振られていて、そういえばFirebaseもそうだったな、と。
POSTS
DB設計するときのIDカラムについて。
昔ながらのシステムだと、auto increment使って連番が定番だと思うのだけど、PocketBaseでCollectionにRecord追加したとき、idは1ldTBeJNhX3jufu
みたいな文字列が割り振られていて、そういえばFirebaseもそうだったな、と。
VS CodeのLive Share - Visual Studio Marketplace拡張、Codespaces | GitHubで使えたら良いなと思って試してみた。
Web Editor(リポジトリ画面で.
押すと開くやつ)だと、拡張のインストールやURLの発行はできるけど、Joinしようとするとサーバーが応答しない的なエラー(うろ覚え)で接続できない。
Codespacesで開いたら、問題なくできた。 すばらしい。
Read morePocketBaseの更新が早い。
Releases · pocketbase/pocketbase
手元のDockerfileもバージョン指定できるように変更した。
Admin UIで日時の表示がUTC固定なのをTZ指定できるようにならないかな。
ずっと欲しいものリストに入っていて買ってなかった、 失敗から学ぶRDBの正しい歩き方 Software Design plus | 曽根 壮大 | コンピュータ・IT | Kindleストア | Amazonをプライムデーのポイントアップ狙いで購入した。
細かいテーブルたくさん作るより、汎用テーブルにしたものを作ろうとしていたので、それはだめだと分かったので良かった。
細かいテーブル作るとコーディング面倒だけど、その面倒さに負けてはいけない。
Read moresupabaseと格闘していたら、PocketBase - Open Source backend in 1 fileという似たような機能を提供するツールを見つけた。
GitHub見ると1週間ほど前に公開されたばかりのよう。
FROM alpine
WORKDIR /app
RUN wget https://github.com/pocketbase/pocketbase/releases/download/v0.2.4/pocketbase_0.2.4_linux_amd64.zip
RUN unzip pocketbase_0.2.4_linux_amd64.zip
RUN rm pocketbase_0.2.4_linux_amd64.zip
CMD [ "/app/pocketbase", "serve", "--http", "0.0.0.0:8090" ]
これでhttp://0.0.0.0:8090/_/
にアクセスしたら管理者アカウントの作成画面が出た。
--http
オプション指定しないとアクセスできない。
supabaseで使っている認証モジュールがnetlify/gotrue: An SWT based API for managing users and issuing SWT tokens。
supabaseのAPIでGoは提供されてないので、直接たたけないか調べてみる。
Architecture | Supabase見ると、/auth
でGoTrueに流されるようだが、Kongの公開ポート54321
経由でhttp://localhost:54321/auth
を叩いても、{"message":"no Route matched with those values"}
とのこと。
以前調べたとき、ローカルで動かしたときにAuth系はサポートしてないというような記事を見て、残念に思っていたのだけれど、Kuzzleの認証も思ったのと違う感じで。
このあたりを見ると、なんかできそう。しかもDockerで。
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
$ echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> /home/umemak/.profile
$ eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
$ brew install supabase/tap/supabase
$ supabase help
Supabase CLI 0.29.1
:
$ supabase init
$ supabase start
http://localhost:54323/ でダッシュボードが表示された。
Read moreHTMLとかコード修正したときに手動で再起動するのが面倒なので、ホットリロードツールを導入してみた。
$ go install github.com/cosmtrek/air@latest
$ air init
$ air
__ _ ___
/ /\ | | | |_)
/_/--\ |_| |_| \_ , built with Go
mkdir /home/umemak/workspace/eventsite_go/tmp
watching .
watching cmd
watching cmd/eventsite
watching db
watching db/sql
watching model
watching model/user
!exclude tmp
watching web
watching web/template
building...
no Go files in /home/umemak/workspace/eventsite_go
failed to build, error: exit status 1
^Ccleaning...
see you again~
デフォルトだと、cmdの下のmain.goを見つけてくれない?
Read moreMySQLコンテナ作ろうと思って、Mysql - Official Image | Docker Hubのcompose書き方見てたら、adminerというイメージを使っていて、同様に起動してみたらなかなか良い。
テーブル定義作るときに、カラム名を別のテーブル名+idにしたら、自動で外部キー定義として認識してくれてすごい。
Read moreJetBrains Fleet: JetBrains の次世代 IDE、去年の11月末にPreview申し込みしていた。 昨日、使えるようになったとメールが来たので早速インストールしてみた。
この記事を書いていて気になったのはこれくらいかな。 以前、RubyMine使ってたことあるけど、そのときは上記現象なかった気がする。
Read more