База данных для приложения CRUD, Rails 3
У меня довольно большая схема БД и около 100 М строк, которые я бы хотел открыть в Интернете, используя Rails 3. Являясь в Интернете, я имею в виду следующее:
- REST api (json и xml)
- Представления для представления данных иерархически
- Редакторы для определенных частей данных
В принципе, то, что я ищу, - это способ запуска команды rails scaffold с соответствующими аргументами автоматически. Я знаю, что magic_model может выполнять некоторые части самого обратного проектирования, но он, похоже, не работает с Rails 3.
Есть ли какой-нибудь инструмент, который может автоматизировать создание лесов?
Ответы
Ответ 1
Вы можете попробовать следующие камни:
-
ActiveAdmin
- > Хотя больше админ-фреймворк, он имеет приятный пользовательский интерфейс и точно удовлетворит ваши потребности в подмостках.
-
ActiveScaffold → Простая инфраструктура генерации автошаблонов
Ответ 2
Я немного изменил свой script:
#!/usr/bin/env ruby
require 'rubygems'
require 'active_record'
require 'active_support'
require 'logger'
require 'fileutils'
ActiveRecord::Base.establish_connection(YAML::load(File.open('database.yml')))
ActiveRecord::Base.logger = Logger.new(File.open('database.log', 'a'))
for table in ActiveRecord::Base.connection.tables
table_class=table.classify
eval("class #{table_class} < ActiveRecord::Base;set_table_name \"#{table}\";end")
columns = []
for column in Kernel.const_get(table_class).columns
columns << "#{column.name}:#{column.type}"
end
puts "rails generate scaffold #{table_class} #{columns.join(' ')}"
end
Я попробовал это в моей базе данных (я использую только mysql), и я думаю, что ее выход неплохой. В основном он печатает команды эшафотов. Я не знаю, является ли это хорошим решением для вас, но это хорошая отправная точка IMHO.
Ответ 3
Вы можете использовать reverse_scaffold. Он делает то, что подразумевается под именем, т.е. Автоматически создает строительные леса из существующей таблицы в старой базе данных.
Вы можете найти его на github:
https://github.com/chrugail/reverse_scaffold (версия rails 3)
Существует также версия rails 2 от ahe (автор оригинала)