Мой OpenSource проект — FusqlFS — файловая система для администрирования СУБД PostgreSQL (а дальше — больше)
Когда-то давным-давно появилась у меня идея сделать так, чтобы можно было монтировать базу данных в файловую систему и видеть все таблицы, индексы, юзеров и прочие артефакты как файлы.
Сначала я попытался найти подобный fuse-демон в сети, но аналогов не было видно нигде, несмотря на идею, лежащую на поверхности.
Начал я тогда писать на Си, понял, что писать буду долго, и взялся за Перл... Тогда я написал на коленке достаточно простую обвязку для монтирования MySQL.
С тех пор прошло много времени. Я вырос и набрался опыта. И вот недавно решил перебрать свои исходники. В тайных закромах нашёл свою древнюю поделку. Сначала обрадовался. А потом ужаснулся, глядя на непонятную горку кода, модифицировать которую почти невозможно. В итоге переписал всё практически с нуля, полностью переработав концепцию.
Так что лежит сейчас проект на гитхабе. Прошу любить и жаловать!
(По крайней мере там основная относительно стабильная ветка, которую я хочу показать общественности.)
Сейчас реализована работа с PostgreSQL, потому что именно с ней я имею дело больше всего, но и MySQL в моём ближайшем TODO-листе.
Сейчас есть возможность:
Данные могут быть представлены в форматах YAML, JSON или XML (YAML по-умолчанию).
Статус приложения — альфа, находится в активной разработке. Использовать на свой страх и риск (хотя я сейчас ею активно админю постгресные таблички на своей девелоперской копии БД на основной своей работе). Любые багрепорты приветствуются.
Репозиторий на гихабе: http://github.com/kstep/fusqlfs.
Баги пока можно писать в тот же багтрекер, потом может поставлю себе что получше если понадобится.
Справка на гитхабе же висит. Здесь примеры для разогрева =)
Установка и запуск
Требуемые перлоыве модули (см. CPAN): Fuse, YAML::Tiny/JSON::Syck/XML::Simple (хотя бы один из них, желательно первый), Carp, DBI, DBD::Pg.
Использование
И так далее до бесконечности...
Заметки
Версия очень-очень альфа, некоторые опции, описанные в README, не до конца отлажены или пока не реализованы.
В частности:
Все метаданные о базе данных кешируются, так что если БД изменилась без ведома программы, то обновить кеш можно, послав этому демону сигнал USR1:
Если кого-то этот проект заинтересует, то мне очень нужны багрепорты. Ну и если кто патчи будет слать — милости прошу =)
Хотя тех. документации там тоже не хватает, это дело тоже в моём TODO-списке... Катастрофически не хватает времени, так что буду рад любой помощи.
Сначала я попытался найти подобный fuse-демон в сети, но аналогов не было видно нигде, несмотря на идею, лежащую на поверхности.
Начал я тогда писать на Си, понял, что писать буду долго, и взялся за Перл... Тогда я написал на коленке достаточно простую обвязку для монтирования MySQL.
Ну люблю я перл, люблю. Любителям спрашивать «А почему не питон?» дарю встречный вопрос: «А почему не перл?»
С тех пор прошло много времени. Я вырос и набрался опыта. И вот недавно решил перебрать свои исходники. В тайных закромах нашёл свою древнюю поделку. Сначала обрадовался. А потом ужаснулся, глядя на непонятную горку кода, модифицировать которую почти невозможно. В итоге переписал всё практически с нуля, полностью переработав концепцию.
Так что лежит сейчас проект на гитхабе. Прошу любить и жаловать!
(По крайней мере там основная относительно стабильная ветка, которую я хочу показать общественности.)
Сейчас реализована работа с PostgreSQL, потому что именно с ней я имею дело больше всего, но и MySQL в моём ближайшем TODO-листе.
Сейчас есть возможность:
- Смотреть, создавать и удалять таблицы как простые каталоги,
- Смотреть, создавать, удалять и править поля, индексы и записи в таблицах как файлы и каталоги,
- Смотреть констрейнты в таблицах (пока только смотреть, правка в процессе реализации),
- Смотреть, создавать и удалять роли и последовательности,
- Смотреть и удалять представления (правка ещё не оттестирована и не доделана),
- Делать произвольные запросы, записывая их в особые файлы.
Данные могут быть представлены в форматах YAML, JSON или XML (YAML по-умолчанию).
Статус приложения — альфа, находится в активной разработке. Использовать на свой страх и риск (хотя я сейчас ею активно админю постгресные таблички на своей девелоперской копии БД на основной своей работе). Любые багрепорты приветствуются.
Репозиторий на гихабе: http://github.com/kstep/fusqlfs.
Баги пока можно писать в тот же багтрекер, потом может поставлю себе что получше если понадобится.
Справка на гитхабе же висит. Здесь примеры для разогрева =)
Установка и запуск
Требуемые перлоыве модули (см. CPAN): Fuse, YAML::Tiny/JSON::Syck/XML::Simple (хотя бы один из них, желательно первый), Carp, DBI, DBD::Pg.
1 2 3 4 5 6 |
|
Использование
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
|
И так далее до бесконечности...
Заметки
Версия очень-очень альфа, некоторые опции, описанные в README, не до конца отлажены или пока не реализованы.
В частности:
- Кеширование в файлы (--cache=file) пока не отлажено, периодически падает, используйте на свой страх и риск,
- Параметр --fnsep пока не реализован, так что будут проблемы с точками в текстовых primary key,
- Также пока никак не влияют на работу параметры --debug и --innodb (последний просто потому, что MySQL пока не поддерживается, но будет).
Все метаданные о базе данных кешируются, так что если БД изменилась без ведома программы, то обновить кеш можно, послав этому демону сигнал USR1:
1 2 3 4 5 |
|
Если кого-то этот проект заинтересует, то мне очень нужны багрепорты. Ну и если кто патчи будет слать — милости прошу =)
Хотя тех. документации там тоже не хватает, это дело тоже в моём TODO-списке... Катастрофически не хватает времени, так что буду рад любой помощи.