Database version control, made easy!
dbv.php is a database version control web application featuring schema management, revision scripts, and more!
Check out the project website for more details, features and documentation.
dbv.php is a database version control web application featuring schema management, revision scripts, and more!
Check out the project website for more details, features and documentation.
(Warning; thinking out loud...)
It looks (after a cursory glance at the code) that it'd be a fair bit of work to enable a multi-database setup. I only have experience with MySQL, and cross-database queries aren't that much of a problem there, so keeping track of changes across databases isn't the biggest issue. It's mostly about how to display things (show everything in one big list? switch views depending on which database you're working on?) and making sure the adapter knows what to do.
Thoughts? Is multi-DB support something that might be in the cards at all?
After putting in the database settings in the config file, I open up DBV.php via wamp server "http://localhost/sitename/dbv-1.1/DBV.php" in Firefox 24.0 and it's blank. What am I doing wrong?
I'm trying to decide if this is a good solution to use at the company I work for, so far it looks like a good solution, it's a tough problem to tackle.
What happens when two people are create folders with the same revision number?
Maybe add more examples on the flow.
Replace .gitkeep
placeholder in data/revision directory with .gitignore
that will ignore everything inside the revision dir, therefore Git user won't need to bother to ignore this folder anymore.
Sadly when creating files OSX creates hidden .DS_Store by default. This breaks running revisions, the only fix is to delete the .DS_Store from the command line or enable view hidden files in finder and deleting it.
I don't see a command line interface, what is the recommended way to implement dbv in a production environment? Are you just using the HTTP password protection?
As discussed via email. It was actually a pretty straight-forward and fairly clean addition overall...
Note --> I did NOT update the SQLite adapter however, although I suspect the MySQL adapter code probably will work in there as-is (haven't used SQLite in a while though TBH) but I didn't test it as that adapter was already not working off-the-shelf and I didn't want to combine the fix into this pull request. Let me know if you'd like to me to make it work for that adapter too, though, and I can do so pretty quickly / easily.
LMK if any concerns or questions otherwise hopefully this will help others too! :-)
From the commit message: Makes using version control & deploy management systems a lot easier. Also allows you to run revisions out of order if desired as they are now tracked individually instead of 'up to'. Implementation is in keeping with the DB adapter / interface paradigm. Only includes adapter code for MySQL however as the SQLite adapter is not currently implementing the interface properly [master branch as of now]; the MySQL adapter code likely would work as-is though.
The post global in php is empty when sending from here https://github.com/victorstanciu/dbv/blob/master/templates/schema.php#L68 .. to here https://github.com/victorstanciu/dbv/blob/master/DBV.php#L108
I've come across this before in chrome where the headers that are sent in the ajax request are not lowercase.
Changing these lines:
https://github.com/victorstanciu/dbv/blob/master/public/scripts/prototype.js#L1556 https://github.com/victorstanciu/dbv/blob/master/public/scripts/prototype.js#L1607 https://github.com/victorstanciu/dbv/blob/master/public/scripts/prototype.js#L1728
to lowercase content-type
fixes the issue.
Hi, thanks for nice looking tool for versioning DB.
I tried it and found problem with french/ukrain/czech diacritics, here is a fix which set connection to UTF8 mode.
It would be great if you will improve this script to use with GIT (that mean change of format of revision to format which correspond with git hash). ;o)
Sincerely, Hansek
Hi there,
I didn't have too much luck installing the php extension dependencies for dbv (gettext and intl) on Mac OS X 10.9.5.
Gettext seems to install OK as per this tutorial - http://idev.ge/installing-gettext-on-mac-osx-10-9 I followed the same process for the intl.so which seemed to go ok, however when trying to access dbv/index.php in browser the following error appears: Fatal error: Call to undefined function bind_textdomain_codeset() in /Path/to/dbv/config.php on line 54
There seems to be little about this issue on the web, however some suggestions that the Mac OS X version of the internationalisation library doesn't have this method.
My workaround so far is to change line 54 of config.php to: if (function_exists('bind_textdomain_codeset')) bind_textdomain_codeset(DEFAULT_DOMAIN, DEFAULT_ENCODING);
Any other thoughts?
Thanks
Dan
tried setting both to 'test' and 'test' and could not login using basic auth. On Fedora 20.
Why not just pass through the database credentials like phpmyadmin does.
if you know how to log in to the database, that becomes the same information needed to log in to the web too.
When I create a new database, I require some tables to have some data already (like list of user groups,..)
What's the best place to store it. If I store it after the schema, I lose my work whenever I run "Push to disk" :/
Hello, I cannot seem to find your contact address, so I am just asking here directly.
If I have to create a new table as part of my work, should I also create a revision for it. I always include DROP table
in revisions though
Currently I usually ask other to import the schema and run revisions later.
Love this project.
It has a shortcoming in the situation I find myself in: We have several people working on their own local DBs, but not in a linear fashion. They are all working on their own branches and adding columns/tables as and when needed. With the current numerical approach to revisions it would be very difficult for them to not use the same revision number when adding a revision and also there is no way to keep track of "missed" revisions as it only works on numbers, so they can't just jump ahead a few numbers to make sure they don't collide.
My proposal would be to allow the following: Remove the numeric requirement for revisions. Users create their revisions with a unique identifier that is highly unlikely to collide with another users revision on a different branch, so for example "2018-03-22_11-12_AddTreeHutCountToApiKeys"
When it comes to revision application, the revision file in data/meta should contain the list of revisions that have already been applied locally, as opposed to just the latest revision number applied. That way revisions made by other users that get merged into a mainline branch could be applied later.
Your thoughts?
Hi!
My development VM is set up to use TLS, with forced redirects from plain HTTP to HTTPS as I'm trying to build/test in as close an environment to production as possible. One (incredibly minor) issue with this is that DBV attempts to load a Google font over plain HTTP which gets blocked in the browser.
The culprit is line 2 in public/stylesheets/dbv.css:
@import url(http://fonts.googleapis.com/css?family=Open+Sans:400italic,600italic,400,600&subset=latin,latin-ext);
Can I please suggest that this URI gets changed to HTTPS, or at least to the protocol relative //fonts.googleapis.com/...
.
Thanks!
Hello
There is this command line php script that will take a source database and compare with a target database and produce sql script with UP / DOWN functionality for a revision. https://github.com/DBDiff/DBDiff
I managed to put it in a composer style integration with DBV and with some small edits to DBV code one will be able to run either the generator for a version or up / down a new revision to target database.
Hi, i just want to know, what value i have to put in config.php if want to use DBLib adapter.
My config is:
define('DB_ADAPTER', 'DBLib');
// but i get this message: [0] could not find driver
Can you help me?
Bugfixes release
Source code(tar.gz)Panel de Control para Gestión de Dominios Esta aplicación permite la gestión interna de dominios de una manera sencilla. Podrás dar de alta dominios p
VMControl - Control your VirtualBox VMs from a web browser Requirements Microsoft Windows XP or newer Oracle VM VirtualBox VBoxManage (included in Vir
Create and Control Page Redirects through Filament A Filament resource to create and maintain page redirects for your website. Installation You can in
.feed Getting started Clone project Go to the folder Install composer composer install Install npm package npm install Copy and edit .env file from .e
ShopOnline - WebApp (Celebrating open-source ?? ) We're hosted at ShopOnline (We are currently facing some issues with registration/login, this will b
All in one - Ban system web (light version) All in one ban system web (light version for all) This database of players who violate or use third-party
Server Manager Are you sick of having to log into hundreads of different website just to access your server? Well we got you, Server manager is a open
LaraEstimate LaraEstimate is a complete Dynamic Estimates/Quotes System made with Laravel 7 and VueJS. The system has the following features: Allows t
A Lumen Blog Your first step towards mastering Lumen. Requirements Docker Installation and usage This is a template repository: don't work directly on
ShitShare A dumb sharing site for photos and videos, made by me, using a bit of borrowed code. Information This was made on Windows, so when video upl
Critter, A Twitter like application written with Laravel in under 10 hours by @msurguy Imagine Twitter is down again. It's dark outside, and how can y
The COSC 360 Project Due Dates: See Milestone Dates Overview: The project is designed to help develop your skills for full stack development. With thi
My CTF Web Challenges This is the repository of all CTF challenges I made, including the source code, write-up and idea explanation! Hope you like it
MenuCard Symfony 5.4.2 application Employees can login with already made admin accounts. Employees can manages create new accounts for new employees.
This Toko Lego e-commerce application is made to meet the final semester exam. Created using laravel framework.
Learning Management System Learning Management System made in vanilla PHP to learn core concepts and usage of some basic utils. Report Bug · Request F
Kuro Photos Web app to share your favorite photos, made with laravel. This web app was made for educationals purposes only. I enjoyed so much learning
About API of the 2008-2009 Family Budget Survey: tables of nutritional composition of foods consumed in Brazil / IBGE, Coordination of Work and Income
Chat App with Next.js, Laravel and Ably This repository serves as a code container for the tutorial I wrote on Ably's Blog. Blog link will be updated