Ruby on Rails и базы данных, Миграции - Разработка модуля для хранения и управления документами в электронном виде
Среда Rails поддерживает работу с большинством современных баз данных, таких как MySQL, SQLite, PostgreSQL. Для этого используются различные адаптеры, встроенные в среду Rails и определяемые в конфигурационном файле config/database. yml. Адаптеры позволяют ActiveRecord формировать различные запросы в зависимости от используемой БД, но формируемые одним и тем же объектно-ориентированным кодом.
Миграции
Для удобной манипуляции со структурой базы данных без использования SQL, а также для хранения истории изменения струкруты БД в процессе разработки (и особенно последующей доработки) приложения модуль ActiveRecord фреймворка Ruby on Rails предоставляет систему миграций.
Миграция представляет собой определенный набор действий, производимых над базой данных. Чаще всего миграция создает таблицу, либо изменяет существующие.
Пример консольной команды для создания миграции:
>ralils generate migration create_employees
При этом в каталоге db/migrate будет создан файл с именем
20130315000001_create_employees. rb
В начале имени файла включается префикс метки времени создания миграции с точностью до секунды. Это позволяет системе и пользователю знать порядок добавления миграций в систему.
Миграция представляет собой файл с кодом на языке Ruby, имплементирующий подкласс класса ActiveRecord::Migration. В классе могут быть переопределены следующие методы:
- 1) up() -- выполняется при запуске миграции; 2) down() -- выполняется при отмене (rollback) миграции; 3) change() -- выполняется при запуске миграции, не нуждается в классе down(), последовательность действий для отмены миграции определяется ActiveRecord автоматически, исходя из действий, описанных в change().
Основные команды для запуска созданной миграции:
- 1) > rake db:migrate -- запускает очередь миграций на выполнение; 2) > rake db:rollback -- отменяет последнюю выполненную миграцию.
Исходный код миграции, созданной выше, может быть таким:
Class CreateEmployees < ActiveRecord::Migration
Def change
Create_table :employees do |t|
T. integer :age
T. string :first_name
T. string :last_name
End
End
End
В коде переопределяется метод change базового класса. В нем вызывается метод create_table(), которому передается название таблицы и блок, в котором вызываются методы, определяющие типы данных полей. Этим методам передаются соответствующие названия создаваемых полей. Метод create_table создает в таблицу и вызывает блок, в котором происходит создание полей таблицы. В результате генерируется SQL запрос следующего вида:
CREATE TABLE 'employees' ('id' int(11) DEFAULT NULL auto_increment PRIMARY KEY, 'age' int(11), 'first_name' varchar(255), 'last_name' varchar(255)) ENGINE=InnoDB
Как видно из запроса, фреймворк по соглашению автоматически создает поле id, т. к. оно необходимо в большинстве случаев. Чтобы переопределить данное поведение, необходимо добавить опцию ":id => false" в вызов метода create_table().
Похожие статьи
-
Веб-фреймворк Ruby on Rails разработан на языке Ruby и является вторым по популярности по версии http://hotframeworks. com. Основными чертами фреймворка...
-
Flagship Docs представляет собой популярную систему управления документами, разработанную компанией RPI Web Tech Group. Данная система решает широкий...
-
В настоящее время существует множество систем управления информационными ресурсами предприятия (ECM - Enterprise content management ), предназначенных...
-
Обзор паттерна MVC Впервые описал схему Model-view-controller (Модель-вид-контроллер) Трюгве Реенскауг, норвежский ученый из университета в Осло,...
-
Модуль должен поддерживать механизм состояний документов. На стадии разработки технического задания были выделены следующие состояния: - Черновик...
-
Введение - Разработка модуля для хранения и управления документами в электронном виде
Актуальность Во многих современных системах автоматизированного управления бизнес-процессами предприятий возникает необходимость в организации и...
-
Цель Работы - использовать принципы архитектуры "Документ-Представление" для выборки и сохранения данных в файлах, а также взаимодействия элементов меню,...
-
Анализ требований к модулю электронных документов Сущность документа Разрабатываемый модуль должен вводить в приложение новую сущность -- документ,...
-
База данных SQLite - Разработка мобильного приложения расчета и учета оплаты коммунальных услуг
Платформа Android предоставляет функции управления базой данных, которые позволяют сохранять сложные коллекции данных. Android также поставляется с...
-
Выбор системы управления базами данных является одним из важных этапов при разработке автоматизированной системы расписания занятий. Выбранный...
-
Регистрация нового пользователя в системе возможна двумя способоами: 1) Самостоятельная регистрация пользователя; 2) Регистрация пользователя...
-
"WWWSQLDesigner" позиционируется как абсолютно бесплатный, доступный для пользователей, универсальный веб-редактор, значительно упрощающий процесс...
-
Для разработки программного обеспечения использован язык Java. Разработка проводилась в среде Eclipse Ganymede 3.2. В качестве СУБД для тестирования...
-
Заключение, Список использованной литературы - Проблема организации и хранения данных
Таким образом, в процессе проектирования базы данных, можно прийти к выводу, что правильная организация хранения и представления данных является...
-
Начинать следует с определения структуры таблицы, соответствующей предметной области, т. е. с определения полей, которые надо включить в таблицу, типов...
-
Этапы проектирования и создания БД - Система управления базами данных
При разработке БД можно выделить следующие этапы работы. I этап. Постановка задачи. На этом этапе формируется задание по созданию БД. В нем подробно...
-
Представления, Хранимые процедуры - База данных "Определение факультативов для студентов"
Представление -- это виртуальная таблица, содержимое которой определяется запросом. Как и таблица, представление состоит из ряда именованных столбцов и...
-
Для написания АИС использовались следующие языки программирования, программные средства и библиотеки: - Язык программирования PHP 5.4; -...
-
Программный интерфейс для базы данных я разрабатывал в объектно-ориентрованной среде Delphi, с помощью Embarcadero RAD Studio. Конструктор форм Delphi в...
-
Постановление Правительства Российской Федерации №1119 "Об утверждении требований к защите персональных данных при их обработке в информационных системах...
-
Создание запросов - Разработка системы управления базой данных "Судоходство"
Для дальнейшего формирования отчетов необходимо создать два запроса на выборку это "Кто и где находится" и "Страны где были корабли". Для создания...
-
Введение - Разработка системы управления базой данных "Судоходство"
Любому предприятию, фирме, организации в процессе экономической деятельности приходится постоянно сталкиваться с большими информационными потоками:...
-
Понятие Data Mining Средства Data Mining включают в себя очень широкий класс различных технологий и инструментов. Средства Data Mining на рынке...
-
Требования к аппаратному обеспечению: - Процессор Intel, AMD; - Оперативная память (ОЗУ) 128 Mб; - Свободное место на HDD 20Мб; - Манипуляторы "мышь",...
-
Объектно-ориентированное программирование (ООП) является парадигмой программирования, которая представляет понятия, как "объекты", которые имеют поля...
-
Обоснование выбора средств разработки проекта Для реализации корпоративной информационной системы "Бюджетное планирование и отчетность" в исследуемой...
-
В современной технологии баз данных предполагается, что создание базы данных, ее поддержка и обеспечение доступа пользователей к ней осуществляются...
-
Предлагаемая библиотека хранит все данные в отдельных таблицах, таким образом он не обязан использовать ту же СУБД, что и основное приложение. В качестве...
-
SimpleXML. В PHP версии 5.0 и выше появилось расширение для работы с xml структурой. Библитека SimpleXML содержит большое количество методов для работы с...
-
Сортировка данных Так как при сортировке данные таблицы будут изменены, то создала новый лист "Сортировка" и в нем вставила копию таблицы 1. Для этого...
-
Физическая Модель Данных Физическое проектирование -- создание схемы базы данных для конкретной СУБД. Специфика конкретной СУБД может включать в себя...
-
Введение - Система управления базами данных
Развитие средств вычислительной техники обеспечило для создания и широкого использования систем обработки данных разнообразного назначения....
-
Можно выделить три основных метода разработки программного обеспечения: 1. Конструкторы программ (Аlgoritm2, Devel Studio, MnCreator, Game Maker и др.)....
-
Цель Работы - изучить приемы создания и использования шаблонов классов. - Теоретические сведения Достаточно часто встречаются классы, объекты которых...
-
Администрирование и защита базы данных - Разработка и администрирование баз данных
Оценка рисков. Для проектирования базы данных, было необходимо выполнить оценку рисков, используя ГОСТ РИСО_МЭК ТО 13335-3-2007. В ходе проектирования...
-
Управление базами данных Access
Задание: 1. В режиме конструктора создать Таблицу Заказы, определив следующие имена полей, типы данных и дополнительные параметры для указанных полей:...
-
Формы - Проблема организации и хранения данных
Работа с данными в режиме таблицы имеет существенный недостаток: если полей слишком много, они не умещаются на экране и приходится прибегать к различным...
-
Назначение и функции программной системы Разработанная база данных "Библиотека" предназначена для использования в учреждениях библиотек. Основной...
-
Без установленных модулей приложение предоставляет следующие модели для работы с данными из базы данных: WorkspacesModel. Предоставляет данные о рабочих...
-
Трансформация данных, Выводы - Разработка аналитического приложения
Процесс трансофрмации в целом соответствует ETL процессу. ETL расшифровывается как "Extract, Transform, Load", что переводится на русский примерно как...
Ruby on Rails и базы данных, Миграции - Разработка модуля для хранения и управления документами в электронном виде