2015-07-22 3 views
0

С помощью приложения rails, развернутого на сервере linux, можно ли напрямую импортировать данные из базы данных доступа? В Windows я могу использовать win32ole для этого, но мой Linux-сервер не будет иметь эту библиотеку. Есть ли там камень для выполнения этого или, возможно, другого способа подключения к базе данных Microsoft Access?Возможно ли подключиться к MS Access DB на Linux?

Примечание * Я не могу экспортировать данные из первого доступа, потому что 1) это будет медленнее и менее идеальным решением; 2) база данных MS Access - это коммерческое приложение, которое не дает возможности экспортировать данные Я хочу.

+0

«медленнее и меньше, чем идеальное решение» не являются причины, почему вы * не * сделать что-то, хотя они, конечно, могут быть причины, почему вы * предпочитают не делать что-то * , Не исключайте возможное решение только потому, что оно не «идеально». –

+0

Правда, только вторая причина - почему я не могу этого сделать. – Eric

+1

Является ли база данных зашифрованной или иначе «заблокированной» таким образом, что вы не можете использовать что-то вроде [UCanAccess] (http://ucanaccess.sourceforge.net/site.html) или [Jackcess] (http: //jackcess.sourceforge .net /), чтобы напрямую подключаться к таблицам и сбрасывать их? –

ответ

0

Рассмотрите возможность экспорта данных MS Access в CSV. Затем импортируйте этот CSV, используя скрипт с автономным подключением ActiveRecord к базе данных Rails.

Возможно, напишите непосредственно в базу данных Rails.

connection = ActiveRecord::Base.establish_connection(
    :adapter => "mysql", 
    :host  => "localhost", 
    :username => "myuser", 
    :password => "mypass", 
    :database => "somedatabase" 
) 
access_csv.each do |record| 
    # >> conditional logic << 
    connection.execute('INSERT INTO STATEMENT') 
end 

Или преобразовать CSV в файл данных семян и rake db:seed

Смежные вопросы