sql server 开发最佳体验

公司看我比较闲,这周开始让我去做 sql-server 数据库开发。

一开始觉得数据库有什么好开发的,很多业务直接写到应用层,数据表操作和查询都直接让应用来写,不是挺好的嘛。但是看了一下已经写好的部分存储过程,被里面简单直接的写法惊讶到了,虽然没有像应用那么直接可以有各种丰富数据类型、方法可以使用,但是就数据来说,xxxxxx。。。。。总之,没想到还能这么搞。对于使用 sql server 就4天的我来说,形容 sql server 开发的词不多。

好的,不废话,写这篇文章的主要目的是因为,sql server 上写代码非常非常非常的不爽。

1. 文件的组织关系找不到。平时写的代码都有代码文件,但是数据库的表,存储过程,真心不好管理。

2. sql server studio 工具使用的非常不习惯,因为使用了十来年的苹果系统,现在在 windows 系统上用这个工具。非常的不习惯。

3. 存储过程运行生效的环节,让初学者难以理解。首次修改某一存储过程时候,从数据库里面拉一份存储过程下来编辑,编辑好之后再要“执行”生效。如果有多个人协同开发,就可能存在彼此覆盖的问题。而且如果每次从数据库里面拉代码下来,只能 呵呵,开发超级累。

摸索并请教过数据库大神之后,较为合理的开发方式是:

1. 维护一个类似 table.sql 的文件,将自己或者团队共同维护的项目所 建的表,都写到一个文件里面去。在开发过程中,将表的变更、创建等操作都写到该文件。当需要升级服务数据库的时候,将新增的部分脚本,在目标服务器上执行一次。

2. 将存储过程的代码本地维护一份,并传到 SVN 上进行管理。当需要升级的时候,将新的存储过程代码挑出来,然后在待升级的数据库上,“执行”一次存储过程的代码。

这样看来,持续的做多轮迭代的数据库开发,也是可以来做的。

但是,不喜欢 windows 的开发环境,以及在 sql server studio 上操作执行存储过程的方式,还有写出来的代码,不好备份,不好比较,不好测试等等在写应用时非常自然的开发习惯  全部找不到落脚点了!非常难受。

所以,一直在想,怎样的开发实践方案最爽呢,找到了 visual studio code 的一个 sql server 插件。琢磨出一个让自己开发的舒服的 sql server 开发方式。

主要使用这么几点:

1. 使用一个 开发 IDE 工具来写 t-sql 代码

2. 每个 t-sql 语句,包括建表等表操作,存储过程,函数等,都可以建工程然后保存固定的位置,然后用 git 来管理代码,协同开发。

3. 工程里面包含测试用例的 sql 文件和简单易行的 其他语言的脚本文件来调用测试。

4. 多个 sql server 环境快速的切换。

5. 数据库服务器升级方案,通过 git 比较来筛选出上一版本和当前版本的差异内容,然后生成 升级包(其实就是差异的 sql 语句)。

具体实践步骤,我准备自己再多用用再在下文写出来。这会先把理想的项目结构给构造出来,以后还可以做一个 sql-server 项目的脚手架,哈哈。不过现在是不是 sql server 开发的人没那么多了,估计没什么人来使用。

另外,我还需要多看看别人怎么做 sql server 开发实践的。最后,大家不要被我只看了4天 t-sql 代码的我给糊弄了,应该还有很多更好的开发实践方式 我没见过。

==========

晚上又试了下  大名鼎鼎的  datagrip , 貌似更加好用。。。也许这个工具才是最佳实践方式

猜你喜欢

转载自blog.csdn.net/qhexin/article/details/86260019