Как зайти в Даркнет?!
25th January, 01:11
5
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
893
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
912
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6085
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4395
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Создание таблиц базы данных из определений объектов
Я знаю, что существует несколько (автоматических) способов создания уровня доступа к данным для управления существующей базой данных (от LINQ до SQL, Hibernate и т. д...). Но я начинаю немного уставать (и я считаю, что должен быть лучший способ делать вещи) от таких вещей, как:
- Создание / изменение таблиц в Visio
- Использование Visio-х "Update Database" для создания / изменения базы данных
- Импорт таблиц в объект "LINQ to SQL classes"
- Соответственно, меняется код
- Скомпилировать
Как насчет способа создания схемы базы данных из определения объектов / сущностей? Я не могу найти хороших ссылок для таких инструментов (и я ожидал бы какой-то встроенной поддержки, по крайней мере, в некоторых фреймворках).
Было бы прекрасно, если бы я только мог ... :
- Изменение определения объекта
- Измените код, который управляет объектом
- Компилировать (изменения в базе данных производятся автоматически-магически)
Check out DataObjects.Net -is предназначен для поддержки именно этого случая. Только код, и ничего больше. Его уровень обновления схемы , вероятно, является самым популярным, который вы можете найти, и он действительно полностью абстрагирует обновление схемы SQL.
Проверьте видео продукта - вы заметите, что ничего дополнительного не сделано для синхронизации схемы. Пример обновления схемы показывает предполагаемое использование этой функции.
То, что вы описали-это GORM. Он является частью фреймворка Grails и построен для работы с Hibernate (возможно, в будущем JPA). Когда я впервые использовал Grails, это казалось обратным. Я был более удобен с рабочим процессом Rails стиля создания таблиц и позволения фреймворку генерировать леса из схемы базы данных. GORM сохраняет ваши доменные объекты для вас, так что вы создаете и изменяете объекты, он управляет базой данных create/update. это имеет больше смысла теперь, когда я привык к нему. Извините, что дразню вас, если вы не ищете новый фреймворк, но он находится в дорожной карте для выпуска 1.1, чтобы сделать GORM доступным автономно.
Я считаю, что это та проблема, которую пытается решить платформа Microsofy Entity Framework . Хотя он специально не предназначен для "Compile (the database changes are done auto-magically)", он решает проблему обработки изменений в модели предметной области без огромной зависимости от базовой модели данных.
Когда мы создали первую версию нашего собственного фреймворка (Inon Datamanager), я попросил его прочитать уже существующие таблицы SQL и автоматически создать из них объекты Java.
Когда мои коллеги, пришедшие из небольшого толкового фона, построили вторую версию, они начали с объектов, а затем автогенерировали таблицы.
На самом деле, они вообще забыли о части SQL, пока я не вернулся и не добавил ее. Но сегодня мы просто запускаем триггер при запуске приложения, который перебирает объектную модель, проверяет, существуют ли таблицы и все правильные столбцы, и создает их, если нет. Очень удобно.
Это оказалось намного проще, чем вы могли бы ожидать - если ваш любимый инструмент не поддерживает подобный процесс, вы, вероятно, могли бы написать его за пару часов - предполагая, что реляционное отображение объектов относительно просто.
Но суть в том, что это, похоже, зависит от того, являетесь ли вы культурно объектным человеком или человеком базы данных - вы можете рассматривать любой из них как авторитетный источник.
Вроде бы запоздалый ответ, но вот он идет:
Я столкнулся с той же самой проблемой и в конечном итоге написал свое собственное решение для нее, работая только с сервером .NET и SQL. Он в основном реализует процесс, который вы описываете:
- Все объекты DB хранятся в виде встроенных скриптов
CREATEкак часть исходного кода - Объекты БД настраиваются автоматически (или по запросу) при использовании функции доступа к данным
- Все изменения, не относящиеся к таблице, также выполняются автоматически (или по запросу) одновременно
- Изменения таблиц, которые могут потребовать особого внимания для переноса данных, выполняются с помощью (созданных вручную) сценариев изменений также при обновлении базы данных
- Даже ручные изменения, внесенные в любой объект базы данных, могут быть обнаружены, так что целостность схемы может быть проверена и исправлена
- Дополнительный облегченный ORM может отображать хранимые процедуры и объекты, а также результирующие наборы (даже несколько)
- Приложение командной строки помогает синхронизировать исходные файлы SQL с базой данных разработки
Библиотека, включая базу данных, бесплатна по лицензии LGPL.
http://code.google.com/p/bsn-modulestore/
Некоторые действительно большие собаки , такие как ERwin Data Modeler, будут возражать против DB. Однако вам нужно иметь большие деньги, чтобы позволить себе этот продукт.
Да, Django работает хорошо.
да, он будет генерировать ваши таблицы SQL из ваших определений моделей данных (написанных в python)
Это не всегда изменит существующие таблицы, если вы обновите свою структуру, возможно, вам придется запустить таблицу ALTER вручную
Ruby on Rails имеет еще более продвинутую версию этих функций (Rails миграций), но мне не нравится фреймворк так сильно, я нахожу ruby и rails довольно своеобразными