投稿

2024の投稿を表示しています

Prisma Postgresに既存DBのデータをインポートする

イメージ
先日Prisma Postgresのearly accessが発表されました。Prismaからの利用に制限されますが、従量課金制のPostgreSQLサーバーレスDBとして利用することができるようです。個人開発で固定費用なしでRDBを使うことができるのはとても嬉しいですね。 ですがpsqlでの接続ができないので、pg_dumpの出力をpsqlで取り込むお決まりの手順が使えず、既存のデータをインポートするのにはちょっと手間が必要です。 この記事を書いている2024/11/02時点ではデータのインポート、エクスポート手段は公式に用意されてはいないようでした(まだearly accessですしね) 以下のdiscussion内容を参考にpg_dumpで元DBからdumpを出力し、改変しつつ生SQLとして読ませるseedスクリプトを用意することでインポートに成功しました。 無事成功! 以下は移行にあたっての記録です。 Prisma Posgresの登録 https://www.prisma.io/postgres からログインして登録していく。クレジットカードの登録は不要。 webからぽちぽち登録していけば用意ができる 東京リージョンが用意されている...! Generate database credentialsをクリックすると接続情報が生成される。接続情報は DATABASE_URL="prisma+postgres://accelerate.prisma-data.net/?api_key=xxxx" という形式になっており、独自プロトコル+api_key指定での接続なのでpsqlなど従来のPostgreSQL用のツールは使えない。 念の為psqlでの接続を試してみたけどやはり接続できなかった。 運用中のDBのデータをインポートする 基本はseedか。生クエリを書けるので、pg_dump結果をseedで読ませたらおおよそなんとかなりそうな気がしてきた www.prisma.io/docs/orm/pri... [image or embed] — もひゃ ( @mohya.bsky.social ) 2024年11月2日 16:53 この方針でなんとかなるんじゃないかとあたりをつけて試してみる。 まずはスキーマを元DBから取得して...

~「成熟した大人」として振る舞い、リーダーとして成果を上げる ~「スタッフエンジニアの道」を読んだよ

先日「スタッフエンジニアの道」を読みました。本書は部下を持たない上級技術職として「スタッフエンジニア」を定義し、どういう役割を求められ、どういうスキルを発揮し、どうあるべきかのひとつの形を示すという内容です。 「成熟した大人」として振る舞い、リーダーとしての成果を上げる 本書では以下の3点をスタッフエンジニアのスキルの三本柱として定義し、3部に渡ってそれぞれを構成するサブスキルに分けて説明していくという構成になっています。 大局的な思考 実行 レベルアップ 全編を通して「スタッフエンジニアはリーダーである」ことが必須であり、リーダーとして成果を出していくために「成熟した大人」としての振る舞いが必要であるという価値観を貫いています。 この背景としてはスタッフエンジニアというのはあくまで、マネージャーとは異なる方法で組織に貢献し、成果を出すリーダーである。ただ与えられた課題を解き、そのためのコードを書き続けた先にリニアにレベルアップした先に待っている役割ではないということが根底にあるのだと思います。 (このあたりの話はEM.FM Re.33 "「技術力」って何?"の後半で話題に出ていて、かなり面白かったのでオススメです。) パッシブな影響力/アクティブな影響力の発揮 「第III部 レベルアップ」でパッシブな影響力とアクティブな影響力という考え方は個人的にハッとさせる部分で面白かったです。(多分ゲームでよくあるパッシブスキル(明示的に使わなくても効果が発揮されるもの)/アクティブスキル(明示的に使うことを選択することで効果が発揮されるもの)を想定しているんじゃないかと思う) パッシブな影響の事例としては例えばその人がどのように責任を持って仕事に取り組んでいるのか、といった「責任ある大人としての姿勢」をとり続けることによって周囲のメンバーやその組織の文化に与えるような例を、アクティブな影響としてはコードレビュアーとして「ガードレール」の役割を果たすことで明示的に影響を与えることができる、というような例を提示しています。 普段、自分自身の行動の影響力を意識することは少ないですが、本書で提示された概念を念頭におきつつ振り返ってみると、新たな意味づけができそうだなという感触があった箇所でした。