Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
PostgreSQLとMySQL、使うならどっち? データベース専門家が8つの視点で徹底比較! オープンソースのデータベースとしてよく比較されるPostgreSQLとMySQL。どんな長所・短所があるのでしょう? それぞれの専門家による対談で明らかにします。 エンジニアとして働いていると必ず直面する悩み。それは、「どのリレーショナル・データベース(以下、RDB)を選ぶのが最善なのか?」です。 RDBごとに長所と短所は異なっています。そのため自社サービスにマッチしないRDBを選んでしまうと、それがボトルネックとなり開発・運用にトラブルが生じるケースは少なくありません。 なかでもよく比較検討されるのが、PostgreSQLとMySQL。ともにオープンソースRDBのデファクトスタンダードであり、高い性能と数多くの機能を持っています。 では、両者は具体的にどのような長所・短所があるのでしょうか。そ
If you were creating a web app from scratch today, what database would you use? Probably the most frequent answer I see to this is Postgres, although there are a wide range of common answers: MySQL, MariaDB, Microsoft SQL Server, MongoDB, etc. Today I want you to consider: what if SQLite would do just fine? For those who are unfamiliar, SQLite is a implementation of SQL as a library — this means t
セッション内容 タイトルは「DevOps with Database on AWS」 DevOps のアプローチでシステム開発に取り組む上で、データベースに対する変更をどのように扱うかは難しい問題です。このセッションでは、ライフサイクルが異なるアプリケーションとデータベースに対する変更を適切に管理することを目的として、代表的なデータベーススキーマ変更の手法を紹介し、それを CI/CD パイプラインに組み込む方法について考えます。 講演者は、こちらのお二人です。 山内 晃(アマゾン ウェブ サービス ジャパン株式会社 技術統括本部 ソリューションアーキテクト) 大村 幸敬(アマゾン ウェブ サービス ジャパン株式会社 技術統括本部 ソリューションアーキテクト 講演資料 DevOps With Databaseはなぜ難しいのか まず最初に、なぜ、DatabaseのDevOpsが難しいのかをお話
A single logical migration is represented as two separate migration files, one to migrate "up" to the specified version from the previous version, and a second to migrate back "down" to the previous version. These migrations can be provided by any one of the supported migration sources. The ordering and direction of the migration files is determined by the filenames used for them. migrate expects
golang-migrateとは? Go言語で作成されたDBマイグレーションツールで、GO言語のライブラリとしてだけではなく、CLIからも利用できます。そのためJavaで開発されているprismatixというサービスでも利用することができます。 JavaのマイグレーションツールにFlywayやliquibaseといったものがあります。その中でこのツールの特徴は、マイグレーションを定義しているファイルをGitHubやAWS S3などから直接参照することができることです。(もちろんローカルのファイルシステムにも対応しています) また対応しているデータベースエンジンも多く、MySQLやPostgreSQL以外にもMongoDBなどにも対応しているなど、様々な場面で使うことができるツールだと思います。 環境構築 今回は手軽に試すためにdocker上で、golang-migrateとPostgreS
目次 MakefileのPHONYで便利コマンドを書いたら世界が変わった 普通のMakefileの記述 端末から生成するファイルを指定 .PHONYを使ったダミーターゲットの記述 ダミーターゲットをサブコマンドとして実行する .PHONYの役割と必要性 便利なサブコマンドを沢山作る サブコマンドをサブコマンド内から実行する おわりに MakefileのPHONYで便利コマンドを書いたら世界が変わった Makefileにはターゲットと依存ファイルを記述すると、そのターゲットをビルドするためのコマンドを実行することができます。 さらに.PHONYを書くとダミーターゲットを作ることができます。 ダミーターゲットを使うと、そのダミーターゲットをビルドするためのコマンドを実行することができます。 実際にはターゲットはダミーなので、コマンドのみが実行されます。 つまりMakefileでコマンドだけを実
データベース操作を実行するためのgolangコードの技術方法の一つにsqlcを使う方法があります。今回は、goのsqlcライブラリについて紹介します。 CRUDとはCRUDとは、4つの基本操作のことを言います。 C は、Create のことです。データベースに新しいレコードを挿入することを表します。R は、Readのことです。データベースからレコードを取得することを表します。U は、Updateのことです。データベース内のレコードの内容を変更することを表します。D は、Deleteのことです。データベースからレコードを削除することを表します。データベースアクセスするライブラリgo言語を利用してdbアクセスするためのコードを書く方法はいくつかあります。 標準パッケージdatabase/sqlパッケージ1つ目は、標準ライブラリとして提供されているデータベース/ SQLパッケージです。 sql発
概要 Go 言語でデータベース操作をする方法は、標準パッケージ・GORM・sqlx などいくつかあります。 今回はそのうちの一つの sqlc を使ってみたので、所感をまとめておこうと思います。 sqlc とは sqlc を使うために必要なファイルは3つあります。 スキーマファイル(database/migrations/users.sql) 使用するデータベースの種類やパッケージ名などを指定する設定ファイル(sqlc.yaml) 使うクエリをまとめたファイル(query.sql) -- users.sql CREATE TABLE IF NOT EXISTS users( id INTEGER NOT NULL AUTO_INCREMENT, name VARCHAR(30) NOT NULL, age INTEGER NOT NULL ) ENGINE=InnoDB DEFAULT CH
これは Go Advent Calendar 2021 の 5 日目の記事です。 はじめに sqlc は SQL から Go のコードを生成するライブラリです。一般的な ORM にはコードから SQL を生成するものが多いと思いますが、 sqlc はそれらと真逆のアプローチを取るユニークなライブラリです。 本記事では sqlc と golang-migrate を使って PostgreSQL を扱う Go アプリケーションの構築を行ってみます。 kyleconroy/sqlc: Generate type safe Go from SQL golang-migrate/migrate: Database migrations. CLI and Golang library. ディレクトリ構成 . ├── db │ ├── db.go │ ├── migrations │ │
I'm a postgres novice. I installed the postgres.app for mac. I was playing around with the psql commands and I accidentally dropped the postgres database. I don't know what was in it. I'm currently working on a tutorial: http://www.rosslaird.com/blog/building-a-project-with-mezzanine/ And I'm stuck at sudo -u postgres psql postgres ERROR MESSAGE: psql: FATAL: role "postgres" does not exist $ which
API サーバーを構築する際に、認証機構を実装する必要がある 何かしらフレームワークを使用して済ませることも考えられるが、今回は自前で用意することにした Authorization: Bearer ヘッダを用いて認証 API を実装する際のヘッダの仕様を確認する CONTENTS 全体像 Authorization: Bearer ヘッダの送信 エラーレスポンスの内容 トークンのセキュリティについて まとめ 参考資料 全体像 認証 API を実装する上で、トークンのやりとりを行う必要がある。 トークンの発行はレスポンスに含めれば良いのでどうとでもなるが、トークンの受け取りは色々方法がある。 リクエストボディに含める 独自ヘッダを使用する Authorization ヘッダを使用する リクエストボディに含めるやり方はどうとでもなるので、ヘッダを使用する方法を調べてみる。 (ダウンロードさせる
JQuery and other frameworks add the following header: X-Requested-With: XMLHttpRequest Why is this needed? Why would a server want to treat AJAX requests differently than normal requests? UPDATE: I just found a real-life example using this header: https://core.spreedly.com/manual/payment-methods/adding-with-js. If the payment processor is requested without AJAX, it redirects back to the original w
2020年に登場して「めちゃくちゃ精度が高い」と話題になったオンライン翻訳サービスが「DeepL」です。直近では公式Chrome拡張機能の「DeepL翻訳(ベータ版)」が登場しており便利さに磨きが掛かっていますが、まだこれらのソフトウェア/アプリでは「PDFファイルの丸ごと翻訳」はできないようなので、PDFファイルの丸ごと翻訳ができるサードパーティのChrome拡張機能「DeepL opener」を使ってみました。 DeepL opener - Chrome ウェブストア https://chrome.google.com/webstore/detail/deepl-opener/almdndhiblbhbnoaakhgefcpmbaoljde DeepLによるページ翻訳、ドキュメント翻訳、PDF上への翻訳表示ができるChrome拡張機能「DeepLopener」の使い方 - Teahat
Ask any Go developer and they will tell you how painful it is to write programs that talk to SQL databases. Go feels like it isn't even half as productive compared to working with toolkits like SQLAlchemy, Diesel, Hibernate or ActiveRecord. The existing tools in the Go ecosystem force application developers to hand-write mapping functions or litter their code with unsafe empty interfaces. Introduc
Internet Engineering Task Force (IETF) D. Hardt, Ed. Request for Comments: 6749 Microsoft Obsoletes: 5849 October 2012 Category: Standards Track ISSN: 2070-1721 The OAuth 2.0 Authorization Framework Abstract The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interacti
サービス設定の「TLS クライアント証明書を紐付けたアクセストークンのサポート」 クライアント側のアクセストークン設定 Authlete のクライアントアプリ開発者コンソール にアクセスし、 「基本情報」タブにおいて以下を設定します。 項目 値 クライアント設定の「TLS クライアント証明書を紐付けたアクセストークンの使用」 以上により、“Mutual-TLS certificate-bound access tokens” が利用可能となります。 実行例 以下は設定後の、各 API の実行例です。(読みやすさのため折り返しています) /auth/token API リクエスト 認可サーバーはクライアントとの相互 TLS 接続から得られたクライアント証明書を “clientCertificate” の値として指定し、Authlete にリクエストを送信します。 $ curl -s -X P
TIGの辻です。GoのORマッパー連載8日目です。本記事では sqlc を紹介します。早速ですが、結論から行きましょう。 sqlc まとめ SQLファイルからデータベースにアクセスできる型安全なGoのコードを生成するライブラリ 構造体のモデルの手書き実装不要 複数テーブルをJOINしたときのマッパー実装不要 生成されるコードは不要なリフレクションなし SQLをがんがん書きたい、でも面倒なマッパー構造体は書きたくない、という開発者にとっては大きな味方になります。 sqlc の紹介 sqlc はSQLファイルからGoのアプリケーションコードを生成するライブラリです。2020/2に v1.0.0 をリリースし、着々とスターを伸ばしています。2021/08現在は v1.8.0 をリリースしています。本資料で生成しているコードも v1.8.0 を用いています。 https://star-histor
ライブリッツの筒井です。 GoのORマッパー連載、折り返して5日目です。 SQLBoilerを使用したDBスキーマ駆動なREST APIサーバの開発ワークフローを紹介します。 なぜSQLBoilerを選ぶのか?自分たちのチームでは、REST APIサーバを開発する際にはまずデータベースのテーブル設計から始めることが多いです。その次にAPI定義の設計へ入るのですが、既にテーブル定義は出来上がっているため、なんとなくSQL文が頭に思い浮かんだ状態でAPIのRequest / Responseを考えることになります。 ゆえにO/Rマッパに一番に求めるのは、「いかにストレスなく思い描いていたSQL文を実行し、Goの文脈に持ち込めるか」ということです。 この基準を元に、次のような観点からSQLBoilerを選定しています。 複雑なSELECT文でDSLに苦悩したくない前述の通り、我々の頭の中にはなん
はじめにgolang ORM連載の2記事目となります。TIGの宮崎将太です。 突然ですがみなさん、O/Rマッパは何を使用していますか? golangだとGORMがデファクトスタンダードの位置を勝ち取りつつあり、当社でも特に理由がない限りはGORMを使用するケースが多い印象です。 今回は新たな可能性としてFacebook社謹製のent/entを検証します。個人的なO/Rマッパ経験としてはRuby on RailsのActiveRecordから始まり、当社謹製のUroboroSQLというO/RマッパからGORMまで割と多めに触れているので、大体どのO/Rマッパでも気になる機能を中心に作りながら検証します。 entとは 公式から引用してくると以下の通りとのこと。 データベーススキーマをグラフ構造として簡単にモデル化 スキーマをプログラムのGoコードとして定義 コード生成に基づく静的型付け データ
(2021.09.18追記)おまけとして、筒井さんがさらに寄稿してくれました。 lib/pq から jackc/pgx への移行 O/RマッパとクエリビルダーO/Rマッパは Object Relational Mapperの略で、通常はGoの構造体とRDBのレコードを紐付ける処理のことを指します。O/Rマッパーと呼ぶことが多いですが、略してORMとも呼びます。名前から見るとSQL検索結果を構造体にマッピングすること(Goだとsqlx相当の処理)かなと思いますが、実際はSQLを組み立てるDSLを提供するライブラリが多いです。 クエリビルダーは、広い意味のO/Rマッパ機能のうち、SQLクエリを組み立てるライブラリのことです。調べると goquとかがまさにそれにあたります。 細かくはgoquを連載テーマにした伊藤真彦さんに譲るとして、簡単ではありますがここでサンプルコードも出しちゃいます。 ds
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く