Ubuntu/Debianにaptを利用してElixirをインストールする方法は、ここに書いてある通りです: https://elixir-lang.jp/install.html#unix-%E7%B3%BB ただし、これをそのまま実行すると最新のElixirがインストールされます。バージョン指定してElixirをインス…
会社で購入したデスクトップPCにUbuntu 18.04 LTSとUbuntu 20.04 LTSをインストールしてみたところ、いくつか深刻な不具合に遭遇しました。一部は解決し、一部は未解決です。情報共有のため作業メモを残します。 マシンは@Sycomという会社から購入しました。…
要旨 Docker Desktop for Windowsを用いてRuby on Rails 6.0によるWebアプリケーション開発を行う手順をできるかぎり簡潔にまとめた。 Docker Composeを用いてデータベースサーバーのコンテナとWebサーバーのコンテナを管理する方法についても解説する。 こ…
要旨 Dockerを用いてRuby on Rails 6.0によるWebアプリケーション開発を行う手順をできるかぎり簡潔にまとめた。 Docker Composeを用いてデータベースサーバーのコンテナとWebサーバーのコンテナを管理する方法についても解説する。 対象OS macOS Mojave Ubu…
『Elixir/Phoenix 初級④: バリデーション』のサンプルアプリ NanoPlanner を本番環境(Ubuntu 18.04 Server LTS)にセットアップして、公開する手順を紹介します。 デプロイメントツールとしてDistilleryを使用します。 前提条件 Ubuntu 18.04 Server LTS ku…
先々月にGCP: 自動スケーリング時における Google Cloud SQL ホワイトリストの管理という記事を書きました。その続きです。 GCPのVMインスタンスからCloud SQLインスタンスへ接続するのにCloud SQL Proxyを使えばうまく行くんじゃないか、という考察で終わっ…
次のような条件でRuby on Railsアプリケーションを運用することにした。 プラットフォームは Google Cloud Platform (GCP)。 負荷状況により自動スケーリング(auto scaling)を行うためマネージドインスタンスグループを利用。 データベースは Google Cloud…
拙著『Elixir/Phoenix初級③: フォーム構造体とチェンジセット』(OIAX BOOKS)が本日発売になりました。価格は税込み1,944円。206ページです。 残念ながら全国の書店には並ばないので、AmazonかOIAX BOOKSのウェブストアからお買い求めください。Kindle版も…
私は、Ruby on Rails の入門書の著者あるいは初心者向け講習会の講師として、Microsoft Windows というプラットフォームの取り扱いに悩まされてきました。 プログラミング入門者・初心者の間では Windows が主流ですが、プロの Rails エンジニアの多くは mac…
複数の PostgreSQL クラスタ(インスタンス)を起動するで書いたように Ubuntu 環境では、普通に apt-get でインストールするだけで複数バージョンのPostgresqlを共存させる状況が整います。 しかし、macOS/Homebrew 環境ではちょっとした準備作業が必要とな…
PostgreSQL におけるデータベース作成とは、既存のデータベースの複製を作ることです。デフォルトでは template1 という名前のデータベースが複製元となります。 さて、PostgreSQLのインストール直後に template1 のエンコーディングが SQL_ASCII になってい…
目標 Ubuntu 16.04 Server がインストールされた 2 台のサーバー host1 と host2 がある。 host1 と host2 の間で /home/foo/share ディレクトリの内容を常に同期する。 一般ユーザー(root 以外のユーザー)で rsync コマンドを実行する。 準備作業 RSA鍵ペ…
Ubuntu 16.04 がインストールされている私の職場PCがハードディスクの故障で動かなくなり、修復のためにいろいろやっている過程で、 ブート時のメニューで「Ubuntu」を選んでも起動しない。 「Advanced options for Ubuntu」を選んでから「upstart」という文…
PostgreSQL を用いた Rails アプリケーション開発で キャッシュした計画は結果型を変更してはなりません あるいは cached plan must not change result type というエラーメッセージに遭遇することがある。 解決法は簡単で、Rails サーバーを再起動すればよ…
問題 Rails あるいは Sinatra を Phusion Passenger で動かしている状況で、permission denied により ruby を実行できない。 解決策 (1) Rails なら config/environment.rb、Sinatra なら config.ru の持ち主が ruby を実行できるユーザーかどうかを確認し…
問題 次のようなRailsのアクションにより files/example.pdf の中身をユーザーにダウンロードさせたい。 class FilesController < ApplicationController def show filename = 'example.pdf' path = Rails.root.join('files', filename) send_file(path, typ…
問題 最近、OmniAuthを使ってGithub経由でのユーザー認証機能を既存のRailsアプリに組み込んだ。 その際、開発環境ではすんなり動いたのだが、本番環境にデプロイすると redirect_uri_mismatch エラーが出てしまう。 解決法 config/initializers/omniauth.rb…
先週末に WEB+DB PRESS Vol.99の「良いコード」を本気でコードレビューしてみた という興味深いブログ記事が書かれました。 はてなブックマークでのコメントを見ると、多くの人がブログ記事の内容に賛同しているようですが、「P12: 何もしないelseは必要か?…
PostgreSQL の「ポイントインタイムリカバリ(PITR)」について調べていて、ドキュメントの中に気になる記述を見つけた。 もし以前のある時点まで復旧させたい場合(例えば、経験不足のデータベース管理者が主トランザクションテーブルを消去した直前)、rec…
PostgreSQL 9.5 のサーバーがデフォルトの 5432 番ポートで動いている状態で、PostgreSQL 9.6 のサーバーをインストールするとどうなるか。 $ apt-get install postgresql-9.6 結果。PostgreSQL 9.6 の main クラスタが 5433 番ポートで立ち上がる。 この状…
私の知る限りにおいて、PostgreSQL のコンソールであるデータベースの CREATE DATABASE 文を知る方法はない。すなわち、MySQL コンソールの SHOW CREATE DATABASE コマンドに対応するコマンドはない。 しかし、代わりに次のようなコマンドを実行すればよい:…
前提条件 ホスト palau の 50001 番ポートで PostgreSQL サーバが稼働している。 このサーバの非特権ユーザー alice がデータベース db0 と db1 を所有している。 alice のパスワードは bravo である。 db0 には複数のテーブルがある。ただし、スキーマは pu…
この記事は、PostgreSQL 9.6: レプリケーションの設定(非同期)の続きです。 同期レプリケーションモードへの移行 postgresql.conf (マスター側)の書き換え # sudo vim /etc/postgresql/9.6/cluster1/postgresql.conf synchronous_standby_names = 'clust…
要点 MySQL 用語の「マスター」と「スレーブ」を、PostgreSQL 用語では「マスター」と「スタンバイ(standby)」と呼ぶ。 レプリケーションには「非同期(async)」と「同期(sync)」の区別がある。可用性を上げたいなら「同期」を選択する。 pg_basebackup…
PostgreSQL のクラスタ(インスタンス)管理は、MySQL の mysql_multi よりも簡単。 以下、Ubuntu 16.04 で行ったトライアルの結果。 クラスタの作成 $ sudo pg_createcluster --port=54321 9.6 abc $ sudo pg_createcluster --port=54322 9.6 xyz sudo -u p…