|
|
|
| Доброго всем времени суток!
Подскажите пожалуйста, как можно синхронизировать добавление, редактирование и удаление таблиц и его строк в PHPMyAdmin в Localhost -> MySite.ru? | |
|
|
|
|
|
|
|
для: muravey
(25.01.2011 в 09:34)
| | Вопрос абсолютно не понятен. | |
|
|
|
|
|
|
|
для: muravey
(25.01.2011 в 09:34)
| | Не понятно, что с чем синхронизируется? | |
|
|
|
|
|
|
|
для: cheops
(25.01.2011 в 12:07)
| | Алгоритм действий:
1. работаю с БД в PHPMyAdmin на localhost, где ред. добавл. удаляю строки или таблицы
2. выгружаю дамп БД
3. захожу на хост в инете где мой сайт, захожу там в PHPMyAdmin
4. загружаю дамп БД
Вопрос:
- как можно автоматизировать в PHPMyAdmin п.п.2-4, чтобы это не делать вручную?
- или какие еще могут быть варианты? | |
|
|
|
|
36.6 Кб |
|
|
для: muravey
(26.01.2011 в 14:36)
| | Можно в админке сайта сделать интерфейс для работы с базами данных.
См. картинку =>
Я выполнила только что запрос на выборку. Точно так же можно делать и запросы на обновление, удаление и т.д. Главное, чтобы у того, кто этим должен заниматься были соответствующие права. | |
|
|
|
|
|
|
|
для: Лена
(26.01.2011 в 15:05)
| | То есть вы для админки написали второй phpmyadmin? | |
|
|
|
|
|
|
|
для: neadekvat
(26.01.2011 в 15:20)
| | Нет, я это не писала. Это из готового самописного проекта.
Работает действительно, как аналог phpmyadmin.
Я точно такое же видела и в Битриксе, и в Друпале.
Если я такое и напишу, то нескоро :) | |
|
|
|
|
|
|
|
для: muravey
(26.01.2011 в 14:36)
| | >- как можно автоматизировать в PHPMyAdmin п.п.2-4, чтобы это не делать вручную?
п.2 можно выполнить путем запуска утилиты из оболочки командной строки.
Правда, не факт, что такой дамп (особенно если он очень большой) окажется пригодным для импорта через phpMyAdmin.
п.3.4. (пакетная работа с phpMyAdmin) автоматизировать не получится. phpMyAdmin - интерактивный клиент, для пакетной работы существует mysql command line client.
Последний, впрочем, работает лишь на той машине, для которой разрешен доступ к серверу БД.
А хостеры, как правило, такой доступ запрещают.
>- или какие еще могут быть варианты?
Писать собственные скрипты экспорта и импорта.
Но дело это крайне непростое - придется учитывать достаточно много разных проблем (ограничения на время исполнения скрипта, ограничения на размер передаваемых пакетов, обеспечение стабильной работы сервера БД по запросам сайта, и т.д.)
Поэтому от начала до конца полностью универсальных автоматических инструментов не бывает - все ньюансы не учтешь.
А коль так, либо пишут что-то специализированное под собственные нужды (редко).
Либо справляются имеющимися средствами и собственными руками. (обычно). | |
|
|
|
|
|
|
|
для: Trianon
(26.01.2011 в 15:29)
| | Поправте мой алгоритм, если что то не так:
- пишу скрипт для админки, который сохраняет все действия с БД в текстовой файл - добавил строку в таблицу -> прога записала запрос в файл, добавил таблицу - тоже, удалил строку и т.д.
- загружаю файл на хост
- на хосте есть скрипт который отслеживает есть ли файл с обнавлением БД
- если есть то производит все действия в БД запросами из файла....
примерно так? | |
|
|
|
|
|
|
|
для: muravey
(27.01.2011 в 19:47)
| | >- пишу скрипт для админки, который сохраняет все действия с БД в текстовой файл - добавил строку в таблицу -> прога записала запрос в файл, добавил таблицу - тоже, удалил строку и т.д.
у Вас менять состояние БД только админка может чтоли?
При обычной работе сайта в таблицы никаких изменений не вносится?
>- загружаю файл на хост
>- на хосте есть скрипт который отслеживает есть ли файл с обнавлением БД
Вот то, что эти два пункта разделены, тоже Вам добавит изрядно головной боли.
Это значит, что придется скрипт в планировщик (CRON) засовывать.
>- если есть то производит все действия в БД запросами из файла....
А ну как не успеет? | |
|
|
|
|
|
|
|
для: Trianon
(27.01.2011 в 19:53)
| | Чтобы понятней было, немного поясню:
- я работаю с сайтом на localhoste, таблицы и строки(поля) доб. ред. удал. в PHPMyAdmin
- а с данными которые в полях опред. таблицы работаю из админки
Вот мне и нужно, что если я добавил таблицу или удалил строку(поле) из таблицы в PHPMyAdmin, автоматизировать этап когда еще идет разработка БД, а на сайте уже есть данные в БД.
Вот как это правильно сделать, я и спрашиваю! | |
|
|
|
|
|
|
|
для: muravey
(27.01.2011 в 20:03)
| | >Чтобы понятней было, немного поясню:
>- я работаю с сайтом
Еще не работаете, а только собираетесь работать по схеме, которую описываете в третий чтоли раз.
Я и в первый раз прекрасно понял.
К сожалению, отвечать на вопросы, которые задают Вам, Вы не хотите. Или не считаете нужным.
А меж тем, от ответа на них зависит, возможно ли (относительно недорогими затратами) предложенную Вами схему реализовать в принципе.
В том смысле, что если ответ будет один - то может быть и выйдет. Как - не знаю.
А если другой - не выйдет никак.
То, что задачку Вы выбрали весьма непростую видно уже сейчас. | |
|
|
|
|
|
|
|
для: Trianon
(27.01.2011 в 20:14)
| | Вы задали всего три вопроса:
УЧИТЕЛЬ
у Вас менять состояние БД только админка может чтоли?
УЧЕНИК
Админка может пока только доб, ред, удал записи в табл
Все остальное в PHPMyAdmin
УЧИТЕЛЬ
При обычной работе сайта в таблицы никаких изменений не вносится?
УЧЕНИК
Изменения вносятся, гостевая книга, счетчики посещений страниц
УЧИТЕЛЬ
А ну как не успеет?
УЧЕНИК
Не понял вопроса!
Вы профессионал, а я только учусь и пройдет время и тоже стану профи, а может и лучше...
Если вам понятна задача, то почему вам просто не направлять меня к решению, я не прошу никого код писать за меня я его сам напишу. Ваши книги поверьте постарались в том что я умею это делать!
Мне просто нужен алгоритм действий, который внедрится сразу после этого форума...
Вы правы в том что с менее затратами, потому что время для меня деньги...
И еще я не ищу простых решений, так как моя система на моем сайте будет полностью автоматизирована, лучше я сейчас потрачу время, но зато потом все будет быстрее работать. | |
|
|
|
|
|
|
|
для: muravey
(27.01.2011 в 20:41)
| | >>При обычной работе сайта в таблицы никаких изменений не вносится?
>Изменения вносятся, гостевая книга, счетчики посещений страниц
Попробую на пальцах.
Я опасаюсь следующего.
Что будет, если коррективы, вносимые со стороны админки (localhost и т.д.), лягут на таблицы без учета того, что таблицы уже были изменены постоянно действующими скриптами (вроде гостевой и счетчиков)?
При чем, заметьте, это сейчас у Вас только гостевая и счетчики.
Если Вы планируете хоть чуть чуть вперед, позже появятся регистрация, пользователи, личные данные. Отслеживать несоответствия в них будет сущим кошмаром.
>>А ну как не успеет?
>Не понял вопроса!
Время выполнения любого скрипат ограничено -именно поэтому пакетные задания так непросто выполнять.
Если скрипт запущен по http-запросу (браузером или другим клиентом) время его выполнения ограничивается лимитами в php.ini и таймаутами http-протокола.
Если скрипт запущен планировщиком, время его (в первом приближении , очень грубо) ограничено интервалом повтора задания. Сделать этот время этого повтора маленьким - скрипт не сможет выполнять длинные пакеты обновлений. Сделать большим - уменьшится реактивность, Вы не сможете вносить правки настолько оперативно, насколько захотите.
>Мне просто нужен алгоритм действий, который внедрится сразу после этого форума...
Весьма сомнительно, что Вы сходу за раз сможете выбрать оптимальный путь.
Или что Вам тут сходу за раз сможет кто-нибудь это сделать.
Если временно закрыть глаза на проблемы работы с большими пакетами обновлений, я бы посоветовал сделать следующее.
Со стороны сервера написать скрипт, который принимал бы текст с дампом (потоком SQL-операторов) и последовательно бы эти операторы выполнял.
На первых порах, непростой задачей будет отделить в тексте один оператор от другого.
Попробуйте выбрать способ такого формирования дампа, чтобы эту задачу решить достаточно легко.
Например, работать только ровно с одним оператором на строку.
Можно придумать схему и посложнее.
Далее можете попробовать написать скрипт, который сформирует подходящий дамп со стороны клиента.
Это чтобы хоть как-то начать действовать.
Проблемы все равно останутся.
Но пока Вы не начнете работать, Вы даже столкнуться с ними не сможете. | |
|
|
|
|
|
|
|
для: Trianon
(27.01.2011 в 21:07)
| | Спасибо, я все понял!
Начал уже работать. Появятся вопросы, в новых темах продолжу общение. | |
|
|
|
|
|
|
|
для: muravey
(26.01.2011 в 14:36)
| | Есть корошая весч - Sypex Dumper. Посмотрите, авось чего полезного найдете. | |
|
|
|
|
|
|
|
для: neadekvat
(26.01.2011 в 15:32)
| | весчъ, конечно, неплохая.
Но я сталкивался с тем, что в неумелых руках (вернее в руках, управляемых пустыми мозгами) эта весчъ приводила к потере БД.
Собственно, это не вина инструмента - болгаркой можно сделать очень многое, а можно и ногу отпилить.
Просто я не назвал бы supexdumper чистым автоматом. | |
|
|
|
|
|
|
|
для: Trianon
(26.01.2011 в 15:54)
| | Да, чтобы его по крону запускать - надо допиливать.
Но и скрывать (точнее, не озвучивать), что такой инструмент существует, исходя из идеи, что автор может убить БД - было бы неправильно, я думаю. | |
|
|
|
|
|
|
|
для: neadekvat
(26.01.2011 в 16:12)
| | от почтеннейшей публики - безусловно :) | |
|
|
|
|
|
|
|
для: muravey
(25.01.2011 в 09:34)
| | т.е. вы хотите добавлять, редактировать и удалять таблицы и строки через PHPMyAdmin и на вашем сайте это каким-то образом сказывалось? | |
|
|
|
|
|
|
|
для: muravey
(25.01.2011 в 09:34)
| | а почему обязательно редактировать на локалхосте, а потом сливать на сервер? Почему не в обратном направлении? Сначала на сервере, потом скачивать дамп, как резервную копию и, если требуется, заливать на локальный sql | |
|
|
|
|
|
|
|
для: kosta_in_net
(28.01.2011 в 00:51)
| | Потому что, я редактирую сайт на локальной машине там где нет интернета. В тундре например. | |
|
|
|