Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

Rails style database migrations are a useful way to evolve your data schema in an agile manner. Most Rails projects start like this, and at first, making changes is fast and easy. That is until your tables grow to millions of records. At this point, the locking nature of ALTER TABLE may take your site down for an hour or more while critical tables are migrated. In order to avoid this, developers b
RailsのChangeLogを読んでいたらkamipoさんの ActiveRecordへのコミットがRails5から使えるようになってるものがたくさんあったのでまとめてみました。 PostgreSQLでExpression IndexとOperator Classをサポート MySQLでPrepared statesmentsをサポート config/database.ymlでprepared_statements: trueとすると利用できるようになります。mysql2 0.4.4以降が導入されていないと使えないようです。 Schema dumperがcreate_tableブロックの中でindexを定義するようになった schema.rbのcreate_tableのブロック内でt.indexでインデックスが定義されるように変更されています。以前はcreate_tableのブロック外で
環境: MySQL Server version: 5.6.19 Rails 4.1.5 iPhone の絵文字を MySQL に登録しようとしたらMysql2::Error: Incorrect string value:...というエラーが出た。3バイトに収まらない4バイトUTF-8を扱うには MySQL 5.5.3 以上でキャラクタセットをutf8mb4にする必要がある。 database.yml の encoding を utf8 から utf8mb4 に変更した。 config/database.yml 修正前: default: &default adapter: mysql2 encoding: utf8 pool: 5 username: root password: socket: /tmp/mysql.sock development: <<: *default dat
How to store emoji in a Rails app with a MySQL database … and check why 5600+ Rails engineers read also this How to store emoji in a Rails app with a MySQL database Suppose you have a Rails app and you are storing your data in a MySQL database. You were requested to add emoji support to your application. Probably you are thinking: Oh, that’s simple, it’s just unicode, isn’t it? The answer is: no.
tl;dr Railsではコネクションプール数を設定していても、1スレッド辺り1コネクションしか持ちません。 発端 アカツキではRails + Unicorn + Nginx + MySQLの構成をAWSで運用しており、c3.4xlargeのインスタンス上で1台辺り64のUnicornワーカープロセスが実行される設定になっています。 ソーシャルゲームでは時にたくさんのアプリケーションサーバを並列稼働される必要がでてきます。特に年末年始の時期は平時の2-3倍のトラフィックが予想され、アプリケーションサーバを最大100台で稼働させる必要がありました。 Railsのdatabase.ymlのpool設定は5だったので、単純に考えると最大 100台 * 64プロセス * 5接続 = 32,000個の接続が常時貼られるのでは?MySQLのmax_connectionsの設定は大丈夫か?という議論があ
In my gemfile I have: gem 'mysql2' My database.yml is as follows: default: &default adapter: mysql2 database: <%= ENV['db_name'] %> username: <%= ENV['db_user'] %> password: <%= ENV['db_pass'] %> host: <%= ENV['db_host'] %> pool: 32 socket: <%= ENV['socket'] %> development: <<: *default production: <<: *default I've run both bundle update and bundle install and my Gemfile.lock shows mysql2. Howeve
My friends and I had decided to use PostgreSQL instead of MySQL because we were all interested in trying it out. Since this was a relatively new project with pretty straight-forward use cases, we decided that there shouldn’t be any harm in trying it out. The next step was to proceed to migrate our application from MySQL to PostgreSQL. And it had proven to be quite simple. The first thing I did was
ActiveRecordは基本ずっと接続をはりっぱなしにします。 なので長時間接続をはりっぱなしにするため タイムアウト等で接続がきれると問題がでます。 MySQLでDBの接続がきれるタイミング 状況別 Railsの場合 HTTPリクエストのあるたびに接続が切れてないかを確認します。切れてる場合は再接続するようになっているので問題なさそうです。 バッチ、デーモン等 ActiveRecordを使った場合はずっとつなぎっぱなしになるため、途中で接続が切れるとエラーになります。 reconnectオプションは危険 じゃあバッチ等の場合自動で再接続してくれればと思うと MySqlのクライアントライブラリレベルでリコネクトの概念がありました。 railsで使うにはdatabase.ymlに:reconnect = trueで指定できます。 が!! railsの実装ではデフォルトはOFFになっています
% rake test_mysql2 --verbose /Users/kamipo/.rbenv/versions/2.2.3/bin/ruby -w -I"lib:test" -I"/Users/kamipo/.rbenv/versions/2.2.3/lib/ruby/2.2.0" "/Users/kamipo/.rbenv/versions/2.2.3/lib/ruby/2.2.0/rake/rake_test_loader.rb" "test/cases/adapter_test.rb" "test/cases/aggregations_test.rb" "test/cases/ar_schema_test.rb" "test/cases/associations/association_scope_test.rb" "test/cases/associations/belong
RailsをMySQLに対応させてみるの続き。 最初はdb/schema.rbが無いので、 とりあえずdb:schema:dumpで、現在のデータベースからschema.rbを作成する。 $ rake db:schema:dump 下記のschema.rbが生成される。 現状、テーブルがなにも無いので、下記のような中身になる。 $ cat db/schema.rb ActiveRecord::Schema.define(version: 0) do end schema.rbに下記のようなcreate_tableを追加する。 $ vi db/schema.rb ActiveRecord::Schema.define(version: 0) do create_table "sample1" do |t| t.datetime "created_at" t.datetime "updated
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く