Ktor
ExposedのDAO APIを使って次のようなモデルを定義してみる。 object Posts : UUIDTable() { val text = varchar("text", 144) val createdAt = datetime("created_at") } class Post(id: EntityID<UUID>) : UUIDEntity(id) { companion object : UUIDEntityClass<Post>(P</post></uuid>…
GitHub Actionsからサービスアカウントを使ってCloud Runにデプロイを行なった時に次のようなエラーが発生した。 ERROR: (gcloud.run.deploy) PERMISSION_DENIED: Permission 'run.services.get' denied on resource このエラーの内容からgcloud.run.deploy…
Cloud RunでKtorアプリを動かしていると、次のエラーログが表示された。 error: Failed to sign the provided bytes 色々調べたらCloud Storageに保管してある画像の署名付きURLの生成時に発生しているようだった。 serverfault.com stackoverflow.com なの…
Cloud RunにデプロイしようとしたKtor + Exposedのアプリケーションイメージが、Cloud SQLへ接続できないことが原因で何度もデプロイに失敗してしまった。解決までに数時間要してしまい、ネットを探してもExposedを使った時のCloud SQLへの接続方法を記した…
次の様なディレクトリの構成を考えてみる。 a_lot_of_settings a settings.json b settings.json c settings.json src main kotlin com takagimeow main.kt a_lot_of_settingsディレクトリの中にはaディレクトリとbディレクトリとcディレクトリが存在し、そ…
docker-composeでPostgreSQLコンテナを立ち上げる。docker-compose.ymlの内容は次のような感じで、Ktorプロジェクトのルートディレクトリに作成する。 version: "3.7" services: postgres: image: 'postgres:13' container_name: takagimeow-postgres restar…
PostgreSQLをデータベースと使用しているときに、一部のカラムをEnumとして表現したい。 そのためにはまず、Enumを型として定義する必要があるので作成してみる。これはテーブルの定義よりも前にやっておく。 こんな感じ。 class PGEnum<T : Enum<T>>(enumTypeName: Stri</t>…
Ktorでデータベースを使用したいので、com.takagimeow.infrastructure.database.daoにDatabaseFactoryを実装してみます。 package com.takagimeow.infrastructure.database.dao import com.takagimeow.infrastructure.database.models.Users import kotlinx.…