You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Ruby で DB を扱うちょっとしたスクリプトを書くとき、ActiveRecord で生SQLを使うと色々捗ることが多い。 そのためのメソッドをまとめてみた。 事前準備: establish_connection 作成・更新系: execute 検索系: select_all, select_one, select_rows, select_values, select_value プレースホルダ: sanitize_sql_array 事前準備 establish_connection DBとのコネクションを確立する。'mysql2', 'postgresql', 'redshift' など様々なアダプタが使える。 以下は接続設定の一例。 [MySQL] (要 mysql2 gem) require 'active_record' config = { adapter: 'mysql2
パフォーマンス重視で大量のデータをDBにロードするにはやっぱLOAD DATAコマンドですよね。 で、以下のコードをRails(3.2.11)から投入しようとしたら ActiveRecord::StatementInvalid:Mysql2::Error: The used command is not allowed with this MySQL versionってエラーがでました。 たぶん、local-infileオプションが聞いてないんだろうなぁと思ってたら案の定そうで、 いろいろ調べ結果、以下で解決しました。 mysql2のgemのversionを'0.3.12b6'にする database.ymlに"local_infile: true"を追加する
背景 ruby2.1とrails4を使ってアプリを作っている。DBはMySQLを使っていて、わけあってあるテーブルの列をdouble型にしたいと思って。 カラムの列を変更するmigrationを作ろうと思った時に、そもそもdouble型のカラムを作るにはどうするんだっけ、ってなって、 Webを調べてみて、解がみつかったので試したところ、ちょっと不都合が生じて、それじゃあモンキーパッチを書いてみよう、という話です。 MySQLのdouble型を利用するmigration まず、MySQLのdouble型の列を使うには、 add_column :table_name, :column, :float, limit: 53 のようなmigrationを書くとできる。(これは、既存のテーブルにカラムを追加するmigration) 型に:floatを指定して、:limitに53を指定する。参考にした
インフラストラクチャー部の成田(@mirakui)です。 Rails の OR マッパーである ActiveRecord ですが、みなさんどのように運用していますか? ActiveRecord を使うと、 SQL を直接扱うことなく、抽象化された表現で RDB にアクセスできるので、アプリケーションの開発効率という観点ではメリットが大きいです。 一方で、 ActiveRecord が駆使されているアプリケーションをサーバに配置してプロダクションとして運用する立場からすると、いくつかの問題に突き当たります。 まずはクックパッド本体アプリケーションにおける、最新の rake stats をご覧ください。 +----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines | LOC
さくっとDBにアクセスするバッチやスクリプトを、rubyで書きたいなぁと思うことはないですか? Railsで使われている O/Rマッピングのライブラリ「ActiveRecord」ですが、Railsではなくただのrubyプログラムから単体で使うことが出来ます。 今回は、「ActiveRecord」を単体で使用して、MySQLにアクセスするスクリプトを書いてみます。 環境 ruby 1.9.3 activerecord 3.2.8 ActiveRecordを使ってみる ActiveRecordをインストール $ gem install activerecord MySQLに接続するためのアダプタインストール $ gem install mysql2 下のようなエラーが出る場合、 Building native extensions. This could take a while... ERR
複数項目でのユニーク制約を付けたい場合、次のようにするのがよい。 class CreateTouhyous < ActiveRecord::Migration def self.up add_index "touhyous", ["touhyounin_id", "gian_id"], :unique => true end def self.down remove_index "touhyous", ["touhyounin_id", "gian_id"] end end * remove_indexの第二引数はインデックス名じゃなくて、索引対象となる項目名(またはその配列)なのね・・。 - 本来のSQL文であれば「ALTER TABLE `touhyous` ADD UNIQUE `touhyous_touhyounin_id_gian_id` (`touhyounin_id`,`gi
本題のRailsへの適用方法へ。 構成 MVCはこんな構成で。 controller -user_controller.rb model -user.rb views -search.html.erb -index.html.erbテーブルはこんな感じ カラム名 説明 id ID name 名前 address 住所 また、全文検索ではacts_as_tritonnを使用してみることにした。 適用手順 acts_as_tritonnプラグインインストール $ script/plugin install http://ryu.rubyforge.org/svn/acts_as_tritonn Usersテーブル & FULLTEXT INDEX生成 Migration作成。INDEXはMecabで。 #●create_users.rb class CreateUsers < ActiveRe
ActiveRecordで上手くmysqlに接続できないなあと思っていろいろと調べた内容をまとめてみました。 ※ただ、きちんと動作を行って検証したわけではないので、間違っている箇所がありましたら、コメント下さい。 mysqlとmysql2 ruby/mysqlに替わってmysql2が利用されるようになっているのは薄々気づいていたのですが、これって全くの別物なのですね。 それでもって、ActiveRecordでは3.0以降にmysql2を採用しているようですが、これがmysql2のバージョンによっては動かないわけで。 gemのそれぞれの最新リリースについて下記のサイトで確認しました。 http://rubygems.org/gems/mysql http://rubygems.org/gems/mysql2 http://rubygems.org/gems/activerecord Acti
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く