PHP и вопрос базы данных - PullRequest
1 голос
/ 30 июля 2010

Я работал над веб-сайтом на своем собственном сервере xampp на моем компьютере с моей собственной базой данных и всем остальным, и пока что это было довольно гладко, на удивление.Теперь я хочу загрузить его на хост, и я нашел бесплатный веб-хостинг, и я смог загрузить сайт через dreamweaver / ftp.Я экспортировал свою БД в запрос SQL и затем запустил этот запрос на действующей БД, чтобы они имели одинаковые данные.

Мне интересно, как лучше синхронизировать эти БД?

1) В моем header.php я указываю некоторые переменные соединения для моей локальной базы данных, и я должен обязательно их изменить, когда я загружаю header.php на сайт, чтобы они имели правильные переменные соединения для удаленной базы данных,Может быть, если у меня был файл на моем хост-сервере и файл на моем локальном сервере, который указывал информацию о соединении и просто никогда не смешивался с ними?

2) Если я что-то изменяю в своей локальной БД, мне нужно скопироватьSQL и запустить его в моем удаленном, а также.Есть хороший способ справиться с этим?

Еще раз спасибо!

Ответы [ 4 ]

0 голосов
/ 30 июля 2010

1: Да, создайте файл config.php с информацией о сервере и включайте ее, когда вам это нужно. Это невероятно распространено и нормально. В идеале вы можете держать этот файл немного отдельно от других файлов, чтобы можно было легко захватывать все файлы приложения и копировать их на работающий сервер, не копируя при этом файл конфигурации. Сохраните где-нибудь резервную копию своего живого конфигурационного файла, потому что однажды вы перезапишете его, и вам будет гораздо лучше, если вам не придется копаться, чтобы выяснить, какой пароль был у действующей базы данных.

2: Есть несколько автоматизированных способов справиться с этим, но они очень сложны. Обычно я создаю пустой текстовый файл с именем changes.sql или что-то в этом роде. Внося изменения в базу данных dev, я вставляю запросы CREATE TABLE, ALTER TABLE и т. Д. В файл changes.sql. Таким образом, у меня есть один файл со всеми изменениями, которые мне нужно внести в работающий сервер, когда я буду готов обновить работающий сайт. После того как я выполню обновление, я сохраняю где-нибудь файл changes.sql и создаю новый пустой файл для следующих изменений.

Ещё 2: Вы также можете просто сделать дамп всей базы данных dev и скопировать её вживую. Большинство сайтов, тем не менее, имеют данные на работающем сервере, которые не должны быть уничтожены или скопированы в dev-информацию пользователя, заказы, отслеживание входа в систему, комментарии пользователей и так далее. Таким образом, вы, как правило, не хотите просто заменять все ваши текущие данные на данные разработчика.

0 голосов
/ 30 июля 2010
0 голосов
/ 30 июля 2010
  1. Обычно я храню содержимое шаблона отдельно от подключения к базе данных, содержимого глобальных переменных и содержимого сеанса с помощью включаемого файла, такого как 'init.php' или 'config.php'. Когда вы обновляете свои файлы, вам, скорее всего, не нужно будет перезаписывать этот файл.

  2. Я использую linux, поэтому я использую mysqldump, чтобы получить файл .sql, загрузить на сервер, а затем просто загрузить «mysql -u user -p databasename

0 голосов
/ 30 июля 2010

Для # 1 вы можете сделать это - маршрут, по которому идет большинство людей, - или заставить файл конфигурации проверить IP перед загрузкой конкретной конфигурации сервера. Если IP-адрес 127.0.0.1, вы загружаете конфигурацию разработки. Если это IP-адрес хоста, он загружает другую конфигурацию.

Лично я не знаю лучшего способа справиться с №2. Таким образом, этот ответ должен быть неполным.

...