Ubuntuではdbtools
、ターミナルコマンドを使用して*.mdbファイルを読み取るために使用しています。
Railsを使用してMDBファイルを読み取ることができるgemまたはメソッドはありますか?
同じプロジェクトをWindowsで実行したい。
MDBをSQLファイルに変換してPostgreSQLにダンプしたい。
Ubuntuではdbtools
、ターミナルコマンドを使用して*.mdbファイルを読み取るために使用しています。
Railsを使用してMDBファイルを読み取ることができるgemまたはメソッドはありますか?
同じプロジェクトをWindowsで実行したい。
MDBをSQLファイルに変換してPostgreSQLにダンプしたい。
そのような宝石を書くために必要なものはすべて揃っているようです :)
進む道には痛みしかない。私の完全に支持されていない意見は、おそらく最良の選択肢は、JDBC ベースの MS Access ドライバーまたは JDBC/ODBC ブリッジを備えた JRuby であるということです。そうすれば、両方のプラットフォームで同じツールセットを使用し、他の多くの問題を回避できます。Java からMSAccessにアクセスするという「通常の」問題が発生するだけです。これは、複雑ではありますが、MRI Ruby からよりも難しくありません。
もちろん、SQLite はクロスプラットフォームのオプションですが、MSAccess を使用しなければならない特定の理由を想定しています。
アプリのデータ ニーズが非常に単純な場合は、適切な mdbtools コマンドを適切なモデルにラップするか、それらをカスタム モジュールと混合することで、必要な動作だけを実装できます。しかし、まあ、それは痛いだろうし、ActiveRecord を取得することはできませんが、ここではおそらく良いことです。
あなたは、新しい NoSQL データベースを使用している人と同じような立場にあります。独自のデータベースを作成する必要があり、AR の使用量が少なくなります。
幸運を
別の攻撃を使用します。
Ubuntuホストで、PostgreSQLドライバーと開発パッケージをロードしてから、pgとSequelgemをインストールします。
そこにコードを記述してMDBファイルを読み取り、Sequelを使用してネットワーク経由でPostgresに直接接続し、レコードを直接挿入します。
別の方法として、Sequelに必要なSQLコマンドをファイルに書き込むか、CSVモジュールを使用して中間ファイルを作成します。これをPostgreSQLにインポートしますが、これは私の考えでは無駄な中間ステップです。
Railsからこれを行う必要はありません。Railsは実際にはタスクに何の価値ももたらさないので、完全に避けたいと思います。
ActiveRecordの知識を活用したい場合は、Railsとは別に使用して、Ubuntuシステムから直接Postgresに接続することができます。