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
リモートのoracleからデータを抜いてローカルのoraceにコピーしようとしたら、抜いてくる段階で異様に時間がかかってしまいはまりました。。 環境 MacOS X Yosemite Ruby 2.1.5 ruby-oci8 oracle11.2.0.4 やりたかったこと リモートのマスターDBからデータをCSVで抜いて、ローカルの開発用DBにコピーしたい 問題 テスト環境では問題ないのに、本番DBにつなぐとSELECTした後のfetchが異様に遅い 本題 とあるシステムの開発のために、リモートのDBから定期的にローカルにデータをコピーしてくる必要がありました。 rubyからoracleにつなぐのは初めてだったんですが、とりあえず調べながらさくっと作ったコードが以下 @conn = OCI8.new('scott','tiger','hogehogetns') sql = 'select
DBのスキーマ、皆様どのように管理されているでしょうか。 Railsを利用されている方の多くは、ActiveRecordのマイグレーションを利用して管理をされているかと思います。 私もいままでいくつかのRailsプロジェクトに関わってきましたが、 ほぼ全てのプロジェクトでActiveRecordのDBマイグレーションを利用してきました。 (一部のプロジェクトはActiveRecordを使っていないため、マイグレーションも独自のものを利用しています) ActiveRecordのマイグレーションでは、DBスキーマ変更の差分情報をマイグレーションスクリプトとして保存しておきます。例えば、新しいテーブル「users」を作成する場合は、下記のようなマイグレーションスクリプトを作成します。 class AddUsers < ActiveRecord::Migration def up # ここにマイグ
要約 Chefみたいなスキーマ管理ツール(Ridgepole)を使うと、GitHubを使ったワークフローでスキーマを管理できる(と思います、たぶん) RailsのMigrationsについての問題提起 Migrationsは便利な仕組みですがベストではないと常々思っていました。 具体的には、特定のマイグレーションを保留にしにくいとか、複数人で作業するとコンフリクトすることがあるとか。 大きめのRailsプロジェクトだと特別なワークフローを用意して解決しているんですかね…声出して行こうぜ!とか。 Chef的スキーマ管理ツール: Ridgepole https://github.com/winebarrel/ridgepole (デモ) 以前からそのようなそのような問題意識があって、たぶん Chef的な冪等性保証する(操作ではなく定義を書くたぐいの)ツールがあれば解決できそう、でも実際作るの大
RailsのMigrationの機能便利ですよね。 他の言語やレガシーコードなフレームワークを使っていると、このMigrationの機能だけでも使いたいと思うことがよくあります。 それを可能にしてくれるStandaloneMigrationというgemがあるようで試してみました。 Ruby1.9.2を使っています。 インストール手順 プロジェクトディレクトリ作成 mkdir hoge cd hoge Rakefileを作成し、以下を記述 begin require 'tasks/standalone_migrations' rescue LoadError => e puts "gem install standalone_migrations to get db:migrate:* tasks! (Error: #{e})" end bundlerを使ってgemを管理するためbundle
Rails等のフレームワークを使っていないプロジェクトでマイグレーションを使いたい時にはStandaloneMigrationが使える。(Ruby以外のプロジェクトでも使える。動かすにはもちろん要Rubyだけど) thuss/standalone-migrations – GitHub これを使わなくてもActiveRecordを使って自前でいろいろ書けばできるが、そういういろいろの面倒を見てくれるので楽ができる。 インストール gem install standalone-migrations 又はbundlerを使ってもいい。 というか環境を移すことを考えるとbundlerを使ったほうがいいですよね。 Rakefileの修正 以下のコードを追記。 begin require 'tasks/standalone_migrations' rescue LoadError => e puts
仕事で作っているアプリ用に書いたO/Rマッパのライブラリ、隠してても何の嬉しいこともないので、社内に置いてたgitのリポジトリをgithubに移した。さすがにもう機能追加の必要もなくなってきたなーという段階になったので。 https://github.com/tagomoris/Stratum ライセンスは Apache License v2.0 としました。なにかしたい方はお好きにどうぞ。READMEとか書き中。 何のためのもの? 世の中にORMなんていくらでもあるのになんで書きはじめたんだ、ということですが、要するに以下の理由です。 誰が、いつ、どのようにデータを追加・更新・削除したのかをすべて残す そのような履歴データに簡易にアクセスする 最近監査とかなんだとかうるさいですからね。 で、こういう条件をきっちり満たしたアプリケーションを普通のORMを使って書くというのは存外に面倒。全デ
Rails ERD is a plugin for Ruby on Rails that generates diagrams based on your Active Record models. Such an entity-relationship diagram gives an overview of your models and how they are associated. Browse through example diagrams, or read the installation instructions. How does it work? Rails ERD loads your Active Record models and processes all their attributes and associations (has_one, has_many
RubyやRails環境からDB2,Informix Dynamic Server (IDS)といったIBMデータベースに接続するためのibm_dbドライバの使い方解説がRails Wikiにあるのですが、日本語版が無かったのでRails wikiのIDを取得して日本語訳ページを作成してみました。 - IBM DB2 => Rails Wiki (日本語訳) RailsのIBM DB2サポートはIBMから直接ibm_dbというオープンソースのgemで提供されています。 - IBM DB2 => Rails Wiki (英語原文) 勢いでぱっと訳したので、荒い部分があると思いますし、間違いがあるかもしれません。何かおかしそうなところを見つけたらコメントなどで教えてくださると助かります。 余談ですが、Rails Wikiで使用されているdokuWikiは軽量(RDBMS不要)なのに高機能な使い
FriendlyはRuby製のオープンソース・ソフトウェア。ここ最近話題になっているのがNoSQLという概念だ。NoSQLというのはRDBMSのようにスキーマを定義してリレーションを組んだものではなく、いわゆるスキーマレスで柔軟なシステム開発を可能にするデータベースだ。 こんな感じで定義する。まさにNoSQL AmazonのSimpleDBやGoogle App EngineのDataStoreなどが良く知られているが、同様のNoSQLをMySQLで実現するのがFriendlyだ。FriendlyはRails用に開発されているライブラリで、スキーマを定義することなくデータベースを利用できるようにするものだ。 Friendlyはクラス名をテーブル名とし、クラスの中で定義した属性を利用できるようにする。特にその要素名でフィールドを作る訳ではなく、attributesというテキストフィールドに全
ゲームを作れるウェブサービス - Rmakeでは、MongoDB : C++ で書かれた高速なドキュメント指向DB (ヽ( ・∀・)ノくまくまー(2009-07-02))にて紹介されているMongoDBとMongoDBにRubyからアクセスできるMongoRecordを使ってみています。使った感じが良かったので、簡単な使用例と適用方法を紹介します。 元記事を読んでMongoDBとMongoRecordのセットアップが終わっている人向けです。ただ、MongoRecordのインストールは以下のInstallationを読んでおく方が良いかもしれません。 mongodb's mongo-activerecord-ruby at master - GitHub 検索関係 NoSQLなDBを使う場合、どれくらい検索機能が充実しているかが一番気になります。MongoDBはトランザクションを扱うことには
少し前までデータベースと言えばRDBMSのことだったが、最近では徐々に変わり始めている。顕著なのがスキーマレスのデータベースの存在だ。さらにCouchDBというクライアントサイドでも使える分散型データベースも登場している。 シンプルなWiki スキーマレスというのは扱い勝手が悪いように感じられることもあるが、その利用ケースによってはぴたりと当てはまってくる。StrokeDBもその一つだ。 今回紹介するオープンソース・ソフトウェアはStrokeDB、Ruby製の分散型ドキュメントデータベースだ。 StrokeDBはCouchDBと似ているが、幾つかの特徴を備えている。まず分散型であることにおいてスケーリングが容易になる。ドキュメントのフォーマットはJSONを利用している。そのこともあってクライアントサイドの言語(JavaScriptやActionScript)との親和性も高い。 サンプルのス
サボっていた早朝ジョギング@駒沢公園を再開して2週間たち、やっと抜かれる数より抜く数の方が増えてきたmikioです。今回は、PerlやRubyのハッシュの代用としてTokyo Cabinetを使うことでメモリ使用量を激減させられることを説明します。 抽象データベースAPI Tokyo Cabinetには抽象データベースという機構があり、先日、そのPerlとRubyのバインディングをリリースしました。それを使うと、各種言語のハッシュとほぼ同じような共通したインターフェイスで、以下のデータ構造を利用することができます。 オンメモリハッシュ:各種言語に標準のハッシュと同じく、メモリ上でkey/valueの関係を表現する。 オンメモリツリー:メモリ上の二分探索木としてkey/valueの関係を表現する。 ファイルハッシュ:いわゆるDBMとして、ファイル上でkey/valueの関係を表現する。 ファ
● [エッグ][Merb][DB] CouchDBを用いた2009新人公演4月におけるあっすーの干され問題の検証 4/4〜5 に開催された「2009新人公演4月」は、セットリストの充実ぶりと、それに負けないメンバーの熱演によって成功を納めた。もちろん全ての観客が本公演に満足したのであるが、各々の帰路において、皆が何か納得がいかない胸の支えをおぼえた事も確かであろう。その漠然とした違和感の正体は、ずばり 我らがあっすーの出番が少ない という点だ。この問題は以前から指摘されていたものの、絶対に認めたくないというヲタ心理や、真面目に調査しようとすると涙するために、多くのあっすーヲタは思考停止し、気付かぬフリをしてきた。しかしながら、今回は正直レベルで「1回ぐらいしか出てきてね?」という気がしてならず、いよいよ我慢の限界を越えたので正しく検証を行うこととする。 また、前述の精神的問題以外にも、この
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く