搜索
首页后端开发php教程数据库版本使用DBV

数据库版本使用DBV

钥匙要点

    DBV是一个基于PHP的数据库版本控制系统,用于MySQL数据库。它不是独立的,需要一个版本控制系统,例如GIT,Mercurial或SVN,以便与您的团队同步。
  • >
  • > dbv允许开发人员跟踪对数据库的更改,与团队成员共享这些更改,并确保每个人都使用数据库的最新副本。它可以跟踪更改,例如新表,重命名或丢弃的表,新的或更新的字段,新的或更新的表行等等。
  • DBV工作流程
  • 涉及创建数据库的本地副本,进行更改,将这些更改导出到磁盘,将其投入到源控制中,并将其推向中央存储库。然后,团队成员可以将这些更改提交到本地副本。
  • >
  • dbv还支持修订,使开发人员可以修改一个以上表的结构。但是,最好对单个表进行更改并为其进行修订,除非这些更改彼此相关。
  • >最好始终在您的任何项目中使用版本控制系统。无论是您是唯一的开发人员的侧项目,还是一个团队项目,其中有五个或更多的人一起工作。但是,将数据库放入版本控件中的想法并不是那么普遍。通常,我们将数据库视为理所当然。

>但是,就像我们项目中的源文件一样,数据库也在不断变化。这就是为什么我们还需要一种方法来跟踪我们所做的变化并轻松与团队的其他成员分享。

在本文中,我们将查看DBV,DBV是MySQL数据库中编写的PHP的数据库版本控制系统,因此您需要安装PHP和MySQL,然后才能使用它,以及Apache或Nginx等Web服务器。

>有关此软件的重要说明是它不是独立数据库版本控制系统,因为它需要诸如GIT,Mercurial或SVN之类的版本控制系统来与您的团队同步。

>安装dbv

开始使用DBV,首先您必须从其网站下载安装程序,将其提取到项目目录中,然后将结果文件夹重命名为DBV。这将为您提供以下路径:

另一种方法只是从github克隆。

>

> dbv配置
<span>my_project/dbv</span>

>您可以通过创建config.php.sample文件的副本并将其重命名为config.php。

>在这里要更新的最重要的内容是前两个部分。只需将my_username,my_password,my_database的值替换为当前数据库配置中的值:

>

上面的配置文件中的第一部分是关于计算机中的MySQL数据库详细信息。

第二部分是DBV本身的登录详细信息。

下一个打开.gitignore文件。默认情况下,它包含以下内容:

<span>my_project/dbv</span>

这些是Git将忽略的文件。但是,如果您知道自己的数据库信息(用户,密码,数据库名称)与团队配偶,则可以从.gitignore文件中删除config.php。如果不是这样,他们将必须创建自己的配置文件并将其排除在源控件中。

接下来,您还必须将数据/元/修订文件添加到.gitignore,因为这是DBV列出有关数据库本地副本的信息。您的队友可能会有所不同,因此需要将其排除在源控件之外。

完成配置后,您现在可以将DBV添加到版本控件中:>

>然后将其推到您的中央存储库,以供团队的其他成员拉动:>

<span><span><?php </span></span><span><span>/**
</span></span><span><span> * Your database authentication information goes here
</span></span><span><span> * <span>@see http://dbv.vizuina.com/documentation/
</span></span></span><span><span> */
</span></span><span><span>define('DB_HOST', 'localhost');
</span></span><span><span>define('DB_PORT', 3306);
</span></span><span><span>define('DB_USERNAME', 'my_username');
</span></span><span><span>define('DB_PASSWORD', 'my_password');
</span></span><span><span>define('DB_NAME', 'my_database');
</span></span><span>
</span><span><span>/**
</span></span><span><span> * Authentication data for access to DBV itself
</span></span><span><span> * If you leave any of the two constants below blank, authentication will be disabled
</span></span><span><span> * <span>@see http://dbv.vizuina.com/documentation/#optional-settings
</span></span></span><span><span> */
</span></span><span><span>define('DBV_USERNAME', 'my_username');
</span></span><span><span>define('DBV_PASSWORD', 'my_password');
</span></span><span><span>?></span></span></span>
有什么变化以跟踪?

> 在我们继续使用dbv之前,

>。我想触摸一些更改以跟踪的一些变化。在数据库世界中,几乎所有更改都可以纳入源控制。这包括以下内容:
<span>config.php
</span><span>.buildpath
</span><span>.project
</span><span>.settings</span>

新表格

重命名的表
  • 掉落的表
  • 新字段
  • >更新的字段
  • 删除字段
  • 新表行(默认表数据)
  • 更新的表行
  • 删除的表行
  • 视图
  • >存储过程
  • 触发
  • >函数(用户定义的函数)
  • > dbv工作流
  • >您可以通过访问以下URL来从浏览器启动DBV:>

或通过访问其URL定义虚拟主机。

这将为您提供类似于以下内容的接口:

>

<span>git add dbv
</span><span>git commit -m "add dbv into project"</span>

>从上方的屏幕截图中,您将看到您之前在Config.php中提供的数据库中当前的表。还有一个在DB字段中显示特定表是否在数据库中和磁盘中是否显示当前表是否保存在文件系统中。有了这些信息,您几乎都知道您当前是否有数据库的最新副本。

>

使用DBV时要记住的一件重要的事情是,您对数据库本地副本进行的任何更改都应具有本地副本,您可以将其提交为源控件。

这意味着,如果您在数据库中创建一个新表,则必须将其导出到磁盘。导出到磁盘的所有表都保存在DBV安装的数据/架构目录中。您可以从下面的屏幕截图中看到我们目前在文件系统中没有TBL_Leadinfo表:> 数据库版本使用DBV

导出新创建的表格磁盘后,您必须将其提交为版本控件:>
<span>my_project/dbv</span>

然后,您可以将其推到中央存储库:>

在这一点上,您可以告诉您的团队伴侣您已经在数据库中创建了一个新表格,并且已经将其推向了中央仓库。现在,他们可以将其拉到本地副本上。
<span><span><?php </span></span><span><span>/**
</span></span><span><span> * Your database authentication information goes here
</span></span><span><span> * <span>@see http://dbv.vizuina.com/documentation/
</span></span></span><span><span> */
</span></span><span><span>define('DB_HOST', 'localhost');
</span></span><span><span>define('DB_PORT', 3306);
</span></span><span><span>define('DB_USERNAME', 'my_username');
</span></span><span><span>define('DB_PASSWORD', 'my_password');
</span></span><span><span>define('DB_NAME', 'my_database');
</span></span><span>
</span><span><span>/**
</span></span><span><span> * Authentication data for access to DBV itself
</span></span><span><span> * If you leave any of the two constants below blank, authentication will be disabled
</span></span><span><span> * <span>@see http://dbv.vizuina.com/documentation/#optional-settings
</span></span></span><span><span> */
</span></span><span><span>define('DBV_USERNAME', 'my_username');
</span></span><span><span>define('DBV_PASSWORD', 'my_password');
</span></span><span><span>?></span></span></span>
>

下一步告诉您的团队伴侣访问DBV页面(http:// localhost/your_project/dbv)。
<span>config.php
</span><span>.buildpath
</span><span>.project
</span><span>.settings</span>
您的团队伴侣可能会有类似于以下屏幕:


在这一点上,他可以在TBL_Tasks表旁边的复选框中打勾,然后单击“推送到数据库”按钮。这将在数​​据库中创建tbl_tasks表。数据库版本使用DBV>

>这就是与DBV合作的工作流程。很容易,不是吗?但是,如果您需要更改当前数据库模式怎么办?也许您错过了一个字段,或者在将其分发给团队之前忘记将其添加到特定的表格中。这就是修订的地方。

修订

>如果您像我一样,并且尝试更新架构(添加了一个新字段,删除字段,更新数据类型等),则可能已经注意到DBV并不了解DBV默认。对于这些更改,您需要创建修订文件。您可以通过在DBV安装中的数据/修订目录中创建新文件夹来做到这一点。命名文件夹的约定正在使用一个数字。因此,您第一次进行修订时,文件夹名称为1,然后下次是2,依此类推。请注意,修订是可以应用于整个数据库的更改。这意味着您可以自由地修改一个以上表的结构,但是只能更改单个表并对其进行修改的好实践。这是您和您的团队轻松管理更改并以后了解更改的。这种做法的唯一例外是更改彼此相关的时候。在这种情况下,将这些更改放在一个修订中是很有意义的。

>

>让我们尝试在TBL_USERS表中创建一个新字段,然后将其命名电子邮件:>

接下来,在DBV安装中的数据/修订/1目录中创建一个新文件,并将您刚刚执行的查询作为目录。命名文件tbl_users.sql。这里的约定使用修改表的名称作为修订文件的名称。

如果要对多个表进行修改,请为每个表创建一个单独的文件。 之后,您可以将新文件提交到源控件中:

<span>git add dbv
</span><span>git commit -m "add dbv into project"</span>

,然后将其推到您的中央存储库:

>您可以再次通知团队伴侣有关特定变化的信息。在更改数据库时,通信是关键。您想确保团队中的每个人都与您在同一页面上。

>

现在,如果他们从浏览器访问DBV,现在可以看到修订版。他们现在要做的就是在修订旁边的复选框中打勾,然后单击“运行选定的修订”按钮。这将使您更改其本地数据库副本:

>

数据库版本使用DBV

结论

DBV是轻松管理数据库版本控制需求的好方法。它使您和您的团队可以轻松地跟踪数据库中所做的更改。它还可以通过使用GIT轻松与团队的其余部分共享更改。这样可以确保每个人始终拥有数据库的最新副本。

>

在本文中,我们研究了将DBV与git一起使用,但是您几乎可以使用您选择的任何版本控制系统。反馈?请在下面的评论中保留它!

在数据库版本上经常询问问题

>数据库版本控制的关键好处是什么?

数据库版本提供几个好处。首先,它提供了对数据库架构进行的所有更改的历史记录,这对于调试和审计目的可能很有用。其次,在错误或问题的情况下,它可以轻松回滚。第三,它通过确保每个人都使用相同版本的数据库来促进团队成员之间的协作。最后,它有助于维持数据库的一致性和完整性,尤其是在分布式开发环境中。

>

>

数据库模式。这通常是使用诸如git的版本控制系统完成的。对数据库架构的每个更改都将作为版本控制系统中的新版本提交。然后,这些版本可根据需要在不同环境(开发,测试,生产等)中更新数据库架构。

>

可以使用哪些工具用于数据库版本?

可用于数据库版本的工具。一些受欢迎的包括液体,飞速和dbmaestro。这些工具提供了功能,例如自动架构更新,回滚功能以及多种数据库类型的支持。工具的选择取决于开发团队的特定要求和偏好。

实现数据库版本操作的挑战是什么?

实现数据库版本,由于几个原因可能会具有挑战性。首先,它需要更改开发过程,这可能很难管理。其次,它需要仔细处理数据库迁移,以避免数据丢失或损坏。最后,它需要对数据库架构及其所做的更改有很好的了解。

>数据库版本如何在敏捷开发中有助于敏捷开发?数据库版本控制可以通过提供所有更改的历史记录,促进更改的简易回滚以及确保在不同环境之间的一致性,从而有效地管理这些更改。这可以极大地提高开发过程的敏捷性和效率。

>

>数据库版本如何与DevOps相关?

数据库版本化是DevOps的关键组件,因为它可以启用连续集成和连续部署(CI/CD)数据库的变化。通过维护数据库架构的版本历史记录,它允许自动部署不同环境的更改,从而提高DevOps流程的速度和效率。

可以与云数据库一起使用数据库版本?是的,可以将数据库版本控制与云数据库一起使用。大多数数据库版本控制工具都支持广泛的数据库类型,包括云数据库。但是,特定功能和功能可能会根据工具和云数据库的类型而有所不同。

>

>数据库版本在数据治理中的作用是什么?

数据库版本在通过确保数据库模式的完整性和一致性来治理。它提供了所有变化的历史记录,这对于审计和合规性可能有用。它还促进了团队成员之间的协作和沟通,这对于有效的数据治理是至关重要的。

>

>数据库版本如何改善数据库的性能?

,而数据库版本本身并不能直接改善数据库性能,可以通过提供模式变化的历史记录来帮助识别性能问题。这对于调试和性能调整可能很有用。此外,通过确保数据库架构的一致性和完整性,它可以间接有助于更好的数据库性能。

>

>数据库版本掌握的最佳实践是什么?

一些数据库版本的最佳实践包括:使用版本控制系统维护数据库架构的版本历史记录;将每个更改作为新版本;部署前对每个版本进行彻底测试;使用自动化工具进行架构更新和回滚;并保持团队成员之间良好的沟通和协作。

以上是数据库版本使用DBV的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
PHP如何识别用户的会话?PHP如何识别用户的会话?May 01, 2025 am 12:23 AM

phpientifiesauser'ssessionusessessionSessionCookiesAndSessionIds.1)whiwSession_start()被称为,phpgeneratesainiquesesesessionIdStoredInacookInAcookInamedInAcienamedphpsessidontheuser'sbrowser'sbrowser.2)thisIdAllowSphptptpptpptpptpptortoreTessessionDataAfromtheserverMtheserver。

确保PHP会议的一些最佳实践是什么?确保PHP会议的一些最佳实践是什么?May 01, 2025 am 12:22 AM

PHP会话的安全可以通过以下措施实现:1.使用session_regenerate_id()在用户登录或重要操作时重新生成会话ID。2.通过HTTPS协议加密传输会话ID。3.使用session_save_path()指定安全目录存储会话数据,并正确设置权限。

PHP会话文件默认存储在哪里?PHP会话文件默认存储在哪里?May 01, 2025 am 12:15 AM

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()

您如何从PHP会话中检索数据?您如何从PHP会话中检索数据?May 01, 2025 am 12:11 AM

ToretrievedatafromaPHPsession,startthesessionwithsession_start()andaccessvariablesinthe$_SESSIONarray.Forexample:1)Startthesession:session_start().2)Retrievedata:$username=$_SESSION['username'];echo"Welcome,".$username;.Sessionsareserver-si

您如何使用会议来实施购物车?您如何使用会议来实施购物车?May 01, 2025 am 12:10 AM

利用会话构建高效购物车系统的步骤包括:1)理解会话的定义与作用,会话是服务器端的存储机制,用于跨请求维护用户状态;2)实现基本的会话管理,如添加商品到购物车;3)扩展到高级用法,支持商品数量管理和删除;4)优化性能和安全性,通过持久化会话数据和使用安全的会话标识符。

您如何在PHP中创建和使用接口?您如何在PHP中创建和使用接口?Apr 30, 2025 pm 03:40 PM

本文解释了如何创建,实施和使用PHP中的接口,重点关注其对代码组织和可维护性的好处。

crypt()和password_hash()有什么区别?crypt()和password_hash()有什么区别?Apr 30, 2025 pm 03:39 PM

本文讨论了PHP中的crypt()和password_hash()之间的差异,以进行密码哈希,重点介绍其实施,安全性和对现代Web应用程序的适用性。

如何防止PHP中的跨站点脚本(XSS)?如何防止PHP中的跨站点脚本(XSS)?Apr 30, 2025 pm 03:38 PM

文章讨论了通过输入验证,输出编码以及使用OWASP ESAPI和HTML净化器之类的工具来防止PHP中的跨站点脚本(XSS)。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境