ここで、ウィリアム、このコードを試してみてください。created_atとupdated_atを無視して、CSVをデータベースにインポートするのはRubyコードです。
それを実行するには:
- コードを新しいファイルに貼り付けます。import.rbと呼びましょう
- ファイルを編集します。「mytablename」という単語
self.table_name = "mytablename"
を、インポート先のテーブルの実際の名前に変更します。
- ファイルの終わり近くで、mydb.dbをSqlite3ファイルの実際の名前に置き換えます。これは、ファイルへの相対パス(import.rbに対する相対パス)である必要があります。
コマンドラインで、次のように入力します。
gem install active_record sqlite3
ruby import.rb path/to/csvfile.csv
(Macを使用している場合は、「gem install」だけでなく、「sudo gem install」を使用してください。)
わかりました、ここにコードがあります:
require 'rubygems'
require 'csv'
require 'active_record'
require 'sqlite3'
ActiveRecord::Base.configurations = YAML::load(DATA)
ActiveRecord::Base.establish_connection('development')
class Record < ActiveRecord::Base
self.table_name = "mytablename" # <=== REPLACE THIS with your table name
end
CSV.foreach ARGV[0], :headers => true do |row|
print "."
hash = Hash[row]
hash.delete("updated_at")
hash.delete("created_at")
Record.create! hash
end
puts "\nDone."
__END__
development:
adapter: sqlite3
database: mydb.db # <=== REPLACE THIS with a relative path to your sqlite3 DB
pool: 5
timeout: 5000