Rails Developers Meetup 2018: Day 2( https://techplay.jp/event/655769 )で行った発表の資料です。 ActiveRecordはWebエンジニア達が嫌う(?)SQLを書かずとも、Rubyオブジェクトで気軽にデータベースへアクセスできる魔…

お仕事で今、Railsアプリケーションで複数DATABASEのサービスを開発していて、いろいろと悩むことが増えてきたので、勉強を兼ねてネットにあったドキュメントを収集していくつか読み込んでみました。俺得記事です。あともしよい資料とかあればぜひコメントください! 🎳 クックパッドにおける最近のActive Record運用事情クックパッドにおける最近のActiveRecord運用事情 - クックパッド開発者ブログ マイグレーションは使っていない1,500以上のモデルがあり、複数人が作業しているため、互いの作業をブロックしないためにもマイングレーションでの運用は行っていない。 スキーマ管理ツール: Ridgepolewinebarrel/ridgepole - GitHubスキーマ管理ツール。テーブル定義ファイルにカラムを書き足すと、実際のDBのテーブル定義と比較して、 差分があればそのぶん
もう数ヶ月くらい前になるけど Rails (ActiveRecord) で R/W splitting を行う switch_point という gem を書いた。 Rails アップグレード作業の中で、魔改造された acts_as_readonlyable をメンテすることに嫌気がさして、もっとマシな実装方法があるはずと思って勢いでコアの実装をして、それから実際のアプリケーションに組み込んで本番に投入していきながら機能追加やバグ修正を重ねて今の形になった。 先日の RubyKaigi 2014 の LT で、R/W Splitting in Rails というタイトルで switch_point の紹介をした。 今まで使い方を真面目に書いてなかったけど、LT 内で軽く紹介しつつ会期中に典型的な使い方を README に書いた。メソッドやクラスのドキュメントは全然書いてない (要るのかな…
「ActiveRecord」の基本とデータの参照:Ruby on Rails3で学ぶWeb開発のキホン(3)(1/2 ページ) 前回まではRuby on Railsの全体像について見てきました。今回からは、Railsを構成する各部品について詳しく解説していきます。まずは、Railsのモデル層の標準的なライブラリである「ActiveRecord」に焦点を当てます。とはいえ、ActiveRecordの提供する機能は膨大なので、数回に分けて解説することにします。今回は、ActiveRecordの基本的な考え方や、使い始めるために必要なマイグレーションの知識、参照系の操作の仕方をご紹介します。 ActiveRecordとは ActiveRecordはRuby on Railsを構成する最も重要なライブラリの1つで、Railsのモデル層に相当し、O/Rマッピングを担当します 。このライブラリの名前は
ActiveRecordを使ったRailsアプリは,デフォルトでデータベースへの接続をプールするようになっています. ActiveRecordユーザとしては待ちわびたぜ!的な機能らしいのですが,設定等でこれをdisableすることが出来ず,LVS+keepalivedを介する場合にはロードバランシングが最初の接続時にしか為されずがなかなか厄介です. 対策として思いついたのは プールした接続を早い周期で捨てる LVS+keepalivedではなく,MySQL Proxyでバランシングする(Proxyへの接続はプール) そもそも接続をプールさせない くらいでした. どうするのがセオリーなのかと調べてみると コネクションプーリングの話 - naoyaのはてなダイアリー 2006-09-03 など4年近く前に議論されていて,"あー,高速道路あるなあ"と,コネクション確立のコストを調べる前に「プール
はじめに 今回はドキュメント指向型データベースの代表としてMongoDBを取り上げます。ドキュメント指向型データベースはRDBMSと違って、スキーマ(テーブル定義)が必要ないことが大きな特徴です。 今回も利用したコードやプログラムはgithubに置いてあるので適宜参照してください。 MongoDBの特徴 前々回、前回と紹介したmemcachedやTokyoTyrantは基本的にRDBMSと組み合わせて、「RDBMSの弱い部分を補う」という使い方でした。しかしMongoDBは少し違っていて、JOINが行えないこととトランザクションをサポートしていないこと以外は、ほぼRDBMSと同じように扱うことができるため、「RDBMSの代替として使う」ことが可能です。 上述したようにMongoDBはRDBMSと違ってJOINはできませんが、代わりに基準となるオブジェクトに別のオブジェクトをあらかじめe
This shop will be powered by Are you the store owner? Log in here
第2回 ActiveRecordが提供するModel機能を理解しよう 富田 陽介 Banana Systems株式会社 2009/4/24 Railsアプリケーション開発を支援する統合開発環境「3rdRail」を使って、開発、デバッグ、プロファイリングの手法をマスターしよう(編集部) 第1回では、「初めてのRailsアプリケーション開発」と題して、Railsが提供するscaffoldという支援機能を使用してシンプルなWebアプリケーションの開発の流れを紹介しました。 これから3回連続で、「つぶやき」アプリケーションを拡張/機能追加しながら、ModelクラスとControllerクラスの開発ステップを見ていきます。第1回で紹介しきれなかった3rdRailのIDEとしての機能を取り上げながら、より実践的なWebアプリケーションの開発手順に触れてみましょう。 今回は、ActiveRecordが提
New to Rails 3? Check out the Ruby on Rails 3 Tutorial book and screencast. A book and screencast series showing you how to develop and deploy industrial-strength Rails apps in a direct, step by step way. The screencast series includes 12 lessons over more than 15 hours! Get the best "over the shoulder" experience of following what a top Rails 3 developer does when building an app today. Click her
前回のエントリのまとめ デフォルトのgemリポジトリhttp://gems.rubyforge.org/から、activerecord-oracle-adapterの取得に失敗する デフォルトのリポジトリからは、代わりにactiverecord-oracle_enhanced-adapterというgemが見つかる Railsのデフォルトのdatabase.ymlにおけるoracleアダプタの記述では、activerecord-oracle_enhanced-adapterは使えない rubygemにhttp://gems.rubyonrails.orgを追加することで、activerecord-oracle-adapterを取得できるようになった ここで解せないのはrubyforgeから見えているactiverecord-oracle_enhanced-adapterという「いかにも」な名
このエントリでは Ruby on Rails と MySQL を使って日本語の全文検索を行う方法を記述する。Ruby on Rails のバージョンは 2.0.2、MySQL のバージョンは 5.0.67、Tritonn のバージョンは 1.0.12、Hyper Estraier のバージョンは 1.4.10 を使用した。サンプルの文章データとして、あらゆる日本人にとって極めて身近な著作権切れ文章である『ドグラ・マグラ』と『黒死館殺人事件』を利用した。処理のために整形したデータは本エントリに添付しておく。またデータベースへアクセスするコードではマイグレーションを除きできるだけベンチマークを取るようにし、その結果は本エントリの最後に記載する。 ページネーション Rails でページネーションを実現する will_paginate という plugin は ActiveRecord に標準でつ
第3回 ActiveRecordを使ったソースコードを読もう 倉貫 義人 松村 章弘 TIS株式会社 SonicGarden 2009/1/28 優れたプログラマはコードを書くのと同じくらい、コードを読みこなせなくてはならない。優れたコードを読むことで、自身のスキルも上達するのだ(編集部) これまでの2回の記事で、Railsアプリケーションの基本的な構成と、テスティングフレームワークであるRSpecを使ったソースコードのコードリーディングを行ってきました。今回は、RailsのキモでもあるDBアクセス処理の部分を扱うActiveRecordを深く掘り下げてコードリーディングを行います。 ActiveRecordとは、まさしく同名の“Active Record”というDBアクセスに関するデザインパターンを実装したライブラリです。データベースのテーブルをクラスとしてビジネスロジックを持たせ、テー
DBの接続設定ファイル hoge/config/database.yml 中に development: adapter: mysql database: mysql timeout: 5000 host: localhost username: root password: hoge encoding: utf8 test: adapter: mysql database: mysql timeout: 5000 host: localhost username: root password: hoge encoding: utf8 production: adapter: mysql database: mysql timeout: 5000 host: localhost username: root password: hoge en
Webベースのシステム開発でMySQL管理を行うとすればphpMyAdminが選択されることだろう。確かに優秀なWebアプリケーションだ。だがちょっと待って欲しい。時代は常に変わっている、時には新しいものに触れてみるのも良いのではないだろうか。 Rails製のデータベース管理システム Ruby on Railsの開発者であれば、データベースももちろんRailsで管理しよう。使うのはrbDBだ。 今回紹介するフリーウェアはrbDB、Ruby on Rails製のデータベース管理システムだ。ソースコードは公開されているが、ライセンスは明記されていなかったのでご注意いただきたい。 rbDBは既存のアプリケーションの中に組み込むという訳ではなく、MySQL全体の管理を行うWebアプリケーションだ。とは言え、最適化等ができる訳ではなく、データベースの作成やテーブルの作成、データのメンテナンス等が主な
Not terribly long ago, I announced Active Delegate, which was a really lightweight plugin that I developed to allow models to talk to multiple databases for specific methods. The plugin worked great for really simple situations, like individual models.. but when it came time to test with associations it fell apart. I haven’t had a chance to work on any updates and knew that it was going to take mo
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く