… опубликовано :
Когда речь заходит о базах данных, иногда нам просто приходится работать с тем, что у нас есть, и надеяться, что в будущем это станет лучше. Например, иногда вы можете использовать только Microsoft Access. Теперь Access не был предназначен для питания веб-сайтов. Он хорошо работает для небольших веб-сайтов, но быстро становится неуправляемым несколькими способами:
- Когда доступ к базе данных Access осуществляется через веб-сайт, он блокируется, что делает практически невозможным перезапись, если вам необходимо загрузить изменения в базу данных.
- Если пользователи взаимодействуют с вашим сайтом, вы должны быть уверены, что не потеряете данные при внесении структурных изменений в базу данных. Это означает внесение изменений на вашем компьютере разработчика, загрузку текущей версии с вашего веб-сайта и прочесывание базы данных, чтобы убедиться, что вы добавили и изменили все нужные столбцы и таблицы, затем убедитесь, что данные сохраняются, а затем нарушаете заблокируйте файл Access (обычно путем изменения DSN), затем загрузите новую базу данных … (Да, это грязно.)
- База данных Access гораздо более ограничена по числу одновременных пользователей, которых она может поддерживать, и как только она достигнет определенного размера, вы увидите серьезные проблемы с производительностью.
Таким образом, в какой-то момент переход на реальный сервер базы данных станет необходимостью для многих быстро растущих сайтов. Для пользователей Access часто выбирают SQL Server, поскольку невероятно легко перемещать данные между Access и SQL Server, используя Data Transformation Services.
Теперь, на выходных, я оказался в положении необходимости переносить базу данных для сайта с Access на SQL Server. Это было проще, чем я думал. Вот все, что я должен был сделать:
[list = 1] [*] Создайте базы данных SQL Server: одну для тестирования, другую для производства. [*] Создание источников данных ODBC [*] Экспорт данных из Access в тестовую базу данных [*] Измените мою переменную DSN в моем файл application.cfm [*] Измените любые функции Now () в моих запросах на функции GetDate (). [*] Протестируйте код на поддомене сайта [*] Загрузить новый код [/ list] В общем, это может Это заняло два или три часа, потому что мне нужно было найти копию Enterprise Manager, которую я мог бы использовать с удаленным хостом. К счастью для тех из нас, кто постоянно обанкротился, вы можете загрузить пробную версию SQL Server и получить не истекающую версию Enterprise Manager. (См. Ссылку на ветку выше.) Как только я это получил, все остальное было просто. 🙂
Так что, действительно, единственное изменение уровня приложения, которое я должен был сделать, — это имя DSN и функция текущей даты в моих запросах. Функция текущей даты может быть решена несколькими способами:
1. Установив переменную с именем «NowFunction» (или как угодно), равную имени функции, необходимой для текущей базы данных:
[left]INSERT INTO myTable ( date_added ) VALUES ( #NowFunction# )[/left]
[left]INSERT INTO myTable ( date_added ) VALUES ( #NowFunction# )[/left]
[left]INSERT INTO myTable ( date_added ) VALUES ( #NowFunction# )[/left]
[left]INSERT INTO myTable ( date_added ) VALUES ( #NowFunction# )[/left]
2. Используя функцию ColdFusion Now () для вставки даты:
INSERT INTO myTable ( date_added ) VALUES ( #Now()# )
INSERT INTO myTable ( date_added ) VALUES ( #Now()# )
INSERT INTO myTable ( date_added ) VALUES ( #Now()# )
И всегда проверяйте все полностью в среде тестирования, прежде чем развертывать его. И это все, что я должен сказать. На данный момент…
(Примечание: вышеприведенные блоки кода не работают должным образом. Я сообщу парням из SP, чтобы они могли проверить это.)