У CSS3 есть легкое решение вашей проблемы. Использование:
background-color:rgba(0,255,0,0.5);
Здесь rgba означает красный, зеленый, синий и альфа-значение. Зеленое значение получается из-за 255, а половина прозрачности получается по 0,5 альфа-значения.
Я взял к кодированию руки, весь мой DDL (создает/изменяет/удаляет) операторы, добавляя их к моему .sln как текстовые файлы, и с помощью нормального управления версиями (использующий подрывную деятельность, но любое управление версиями должно работать). Таким образом, я не только извлекаю пользу из управления версиями, но и обновляющий живой от dev/stage тот же процесс для кода и базы данных - теги, ответвления и так далее работают все равно.
Иначе, я соглашаюсь, что redgate является дорогим, если у Вас нет компании, покупая его для Вас. Если можно заставить компанию покупать его для Вас, хотя, это действительно стоит того!
Я в настоящее время работаю то же самое Вам. Не только развертывая базы данных SQL Server от теста, чтобы жить, но также и включать целый процесс от Локального-> Интеграция-> Тест-> Производство. Таким образом, что может сделать меня, легко каждый день, я делаю , задача NAnt с SQL Красного Логического элемента Выдерживает сравнение . Я не работаю на RedGate, но я должен сказать, что это - хороший выбор.
Я делаю все свое создание базы данных как DDL и затем обертываю тот DDL в схему maintainence класс. Я могу сделать различные вещи создать DDL во-первых, но существенно я делаю всю схему maint в коде. Это также означает что, если нужно сделать не вещи DDL, которые не отображаются хорошо на SQL, который можно записать процедурной логике и выполнить ее между глыбами DDL/DML.
Мои dbs тогда имеют таблицу, которая определяет текущую версию, таким образом, можно кодировать относительно простой набор тестов:
Для однопользовательского приложения я просто выполняю это на месте для веб-приложения мы в настоящее время для блокирования пользователя, если версии не соответствуют и имеют одинокую схему maint приложение, мы работаем. Для многопользовательского это будет зависеть от конкретной среды.
преимущество? Хорошо у меня есть очень высокий уровень уверенности, что схема для приложений, которые используют эту методологию, последовательна через все экземпляры тех приложений. Не прекрасный, существуют проблемы, но это работает...
существуют некоторые проблемы при разработке в среде команды, но это - более или менее данный так или иначе!
Murph
Я соглашаюсь с хранением всего в управлении исходным кодом и вручную пишущий сценарий всех изменений. Изменения в схеме для единственного выпуска входят в файл сценария, созданный специально для того выпуска. Все сохранили procs, представления, и т.д. должны войти в отдельные файлы и рассматривали, точно так же, как .cs или .aspx, насколько управление исходным кодом идет. Я использую powershell сценарий для генерации одного большого .sql файла для обновления материала программируемости.
мне не нравится автоматизировать приложение изменений схемы, как новые таблицы, новые столбцы, и т.д. При выполнении производственного выпуска, мне нравится проходить команду сценария изменения командой, чтобы удостовериться, что каждый работает как ожидалось. Нет ничего худшего, чем выполнение большого сценария изменения на производстве и получении ошибок, потому что Вы забыли некоторую небольшую деталь, которая не представила себя в разработке.
я также узнал, что индексы нужно рассматривать точно так же, как файлы кода и поместить в управление исходным кодом.
И у Вас должно определенно быть больше чем 2 базы данных - dev и живой. У Вас должна быть dev база данных, что все используют для ежедневной газеты dev задачи. Тогда база данных подготовки, которая подражает производству и используется, чтобы сделать Ваше интеграционное тестирование. Тогда, возможно, полная недавняя копия производства (восстановленный от полного резервного копирования), если это выполнимо, таким образом, Ваш последний раунд тестирования установки идет вразрез с чем-то, что является максимально близко к реальной вещи.
RedGate SqlCompare является способом пойти, по-моему. Мы делаем развертывание DB регулярно и так как я начал использовать тот инструмент, я никогда не оглядывался назад. Очень интуитивный интерфейс и экономит много времени в конце.
Pro версия будет заботиться о сценариях для интеграции управления исходным кодом также.
Используя SMO/DMO, не слишком трудно генерировать сценарий Вашей схемы. Данные являются немного большим количеством забавы, но все еще выполнимый.
В целом, я беру "Сценарий, к которому Это" приближается, но Вы могли бы хотеть рассмотреть что-то вдоль этих строк:
я использовал инструменты Red Gate, и они великие инструменты, но если Вы не можете позволить себе его, создавая инструменты, и прокладывание себе путь не слишком далеко от идеала.
Я использую механизм миграций Subsonic, таким образом, у меня просто есть dll с классами в порядке squential, которые имеют 2 метода, вверх и вниз. Существует непрерывный рычаг сценария интеграции/сборки в nant, так, чтобы я мог автоматизировать обновление своей базы данных.
не лучшая вещь в мире, но это бьет DDL записи.
Если у Вас есть компания, покупая его, у Жабы от Quest Software есть этот вид встроенной функциональности управления. Это - в основном операция с двумя щелчками, чтобы сравнить две схемы и генерировать синхронизирующий сценарий от одного до другого.
у Них есть выпуски для большинства популярных баз данных, включая, конечно, SQL-сервер.
Я работаю тот же способ, которым Karl делает путем хранения всех моих сценариев SQL для того, чтобы создать и изменить таблицы в текстовом файле, который я сохраняю в управлении исходным кодом. На самом деле, для предотвращения проблемы необходимости иметь сценарий исследуют живую базу данных для определения то, что ИЗМЕНЯЕТСЯ для выполнения, я обычно работаю как это:
одна вещь, которую это не сделает, помочь, если часть того, что Вы перемещаете от теста до производства, является данными, но если Вы хотите управлять структурой и не заплатить за хороший, но дорогой пакет управления DB, является действительно не очень трудным. Я также нашел, что это - довольно хороший способ отслеживать Ваш DB.
Как Rob Allen, я использую SQL, Выдерживают сравнение / Данные Выдерживают сравнение Redgate. Я также использую мастер Печати по базе данных Microsoft. У меня также есть консольное приложение, которое я записал в C#, который берет sql сценарий и выполняет его на сервере. Таким образом, можно выполнить большие сценарии с командами 'ДВИЖЕНИЯ' в нем из командной строки или в сценарии пакетной обработки.
я пользуюсь библиотеками Microsoft.SqlServer.BatchParser.dll и Microsoft.SqlServer.ConnectionInfo.dll в консольном приложении.
Не забывайте решение Microsoft проблемы: Выпуск Базы данных Visual Studio 2008 года. Включает инструменты для развертывания изменений в базах данных, производя разность между базами данных для схемы и/или изменений данных, модульных тестов, поколения данных тестирования.
Это довольно дорого, но я использовал испытательный выпуск некоторое время и думал, что это было блестящим. Это делает базу данных столь же легкой работать с как любая другая часть кода.
Для моих проектов я чередуюсь между SQL, Выдерживают сравнение от КРАСНОГО Логического элемента и Мастера Печати по базе данных от Microsoft, которую можно загрузить бесплатно здесь .
Мастер не является столь же гладким, как SQL Выдерживает сравнение, или Данные SQL Выдерживают сравнение, но это добивается цели. Одна проблема - то, что сценариям, которые это генерирует, возможно, понадобятся некоторая реконструкция и/или редактирование для течения в одном выстреле.
На стороне, это может переместить Вашу схему и данные, которые не плохи для бесплатного инструмента.
Я соглашаюсь, что сценарии всего являются лучшим способом пойти и - то, что я защищаю на работе. Необходимо написать сценарий всего от создания базы данных и создания объекта к заполнению таблиц поиска.
Что-либо Вы делаете в UI, только не переведет (специально для изменений... не так для первого развертывания) и закончит тем, что требовал инструментов как то, что предлагает Redgate.
Я также поддерживаю скрипты для всех моих объектов и данных. Для развертывания я написал эту бесплатную утилиту - http://www.sqldart.com. Она позволяет изменять порядок файлов скриптов и запускает их в рамках одной транзакции.