|
|
|
| База в MyISAM, но таблицы в ней все InnoDB с внешними ключами.
Сделал так, потому что считал, что самое удобное копировать базу простым копированием директории. Не помогло...
Представления перестают работать при таком копировании.
Из дампа РМА тоже не могу востановить: представления не создаются так как необходимые для представлений функции (созданные мной) отсутствуют.
Можно, конечно, попытаться вручную отредактировать порядок следования запросов в дампе,
но в нём много всякой всячины - легко запутаться, а мне, похоже, часто этот дамп придётся с места на место таскать.
В общем, существует ли надёжный способ переноса базы между двумя домашними компьютерами? | |
|
|
|
|
|
|
|
для: Eugene77
(17.02.2012 в 16:17)
| | >База в MyISAM, но таблицы в ней все InnoDB с внешними ключами.
Параметры базы данных ни на что не влияют, кроме того, что если вы не укажите тип таблицы при создании её при помощи CREATE TABLE, будет назначен тип, прописанный в базе данных по умолчанию.
>Из дампа РМА тоже не могу востановить: представления не создаются так как необходимые для
>представлений функции (созданные мной) отсутствуют.
Довольно странно, а .frm в каталоге базы данных для представления имеются?
>В общем, существует ли надёжный способ переноса базы между двумя домашними
>компьютерами?
SQL-дамп. | |
|
|
|
|
|
|
|
для: cheops
(17.02.2012 в 16:24)
| | >>Из дампа РМА тоже не могу востановить: представления не создаются так как необходимые для
>>представлений функции (созданные мной) отсутствуют.
>Довольно странно, а .frm в каталоге базы данных для представления имеются?
Определения функций стоят после определения представлений в дампе. Только и всего...
Но при большом дампе - проблема.
>>В общем, существует ли надёжный способ переноса базы между двумя домашними
>>компьютерами?
>SQL-дамп.
А РМА не через утилиту делает? | |
|
|
|
|
|
|
|
для: Eugene77
(17.02.2012 в 16:30)
| | >>>Из дампа РМА тоже не могу востановить: представления не создаются так как необходимые для
>>>представлений функции (созданные мной) отсутствуют.
>>Довольно странно, а .frm в каталоге базы данных для представления имеются?
>Определения функций стоят после определения представлений в дампе. Только и всего...
>Но при большом дампе - проблема.
Дело в том, что все хранимые процедуры хранятся в системной таблице mysql.proc, она имеет тип MyISAM, её можно физически перемещать. Кроме того, вы можете создать отдельный дамп для хранимых процедур при помощи ключа -R (--routines) утилиты mysqldump.
>>В общем, существует ли надёжный способ переноса базы между двумя домашними
>>>компьютерами?
>>SQL-дамп.
>А РМА не через утилиту делает?
Нет, там собственный код. | |
|
|
|
|
|
|
|
для: cheops
(17.02.2012 в 16:43)
| | >Дело в том, что все хранимые процедуры хранятся в системной таблице mysql.proc, она имеет тип MyISAM, её можно физически перемещать. Кроме того, вы можете создать отдельный дамп для хранимых процедур при помощи ключа -R (--routines) утилиты mysqldump.
Вот-вот там указывается какой базе принадлежит процедура (в моём случае только функции)
При восстановлении из дампа в другую базу - не работает.
Кроме того, вы можете создать отдельный дамп для хранимых процедур при помощи ключа -R (--routines) утилиты mysqldump.
А вы не можете навскидку написать какую строку надо скормить mysqldump, чтобы она ровно одну базу сохранила, но так, чтобы :
1) Функции оказались перед представлениями
2) Представления после таблиц
3) Связи таблиц в конце | |
|
|
|
|
|
|
|
для: Eugene77
(17.02.2012 в 16:57)
| | В одну строку не получится, только если вы функции будете называть на a, представления на b, а таблицы на остальные буквы алфавита. Тогда дамп должен выстроиться так, как вам нужно. | |
|
|
|
|
|
|
|
для: cheops
(17.02.2012 в 17:24)
| | >В одну строку не получится, только если вы функции будете называть на a, представления на b, а таблицы на остальные буквы алфавита. Тогда дамп должен выстроиться так, как вам нужно.
Ну, а что?
Буду перед названием функции добавлять 2 подчёркивания,
перед названием представления - одно.
Это мне подходит.
Что-то надо ещё писать, чтобы по алфавиту выстроить или просто mysqldump и название базы? | |
|
|
|