用sql脚本来建立aspnet_regsql所建立的数据库(带sql脚本下载)

目前一直使用membership和roles,对它进行扩展后一切都很不错,但在部署上有点麻烦。经典的membership使用时得先用.net2.0带的aspnet_regsql.exe安装数据库对象,可以安装在mssql2000、sql2005上,但问题是在远程主机上是不能运行的,有个办法是本地先做好数据库,再传上去附加,还是很麻烦,也不好做成安装程序。

经典部署方式:
1、本地建立数据库
2、使用aspnet_regsql.exe建立membership所需数据库对象
3、建立自己的数据库业务逻辑
4、 保存为数据库文件,FTP到远程主机上附加
5、拷贝web应用程序部署
6、配置web.config

用附加的方式主要是为了基础数据,免得在远程主机上又是搞结构又是倒数据的麻烦。

但很多虚拟主机是不让附加数据库的,以上部署方法得把数据库对象导出为sql脚本来执行,aspnet_regsql.exe也是运行sql脚本的,在Microsoft.NET/Framework/v2.0.50727目录中有类似 InstallCommon.sql这样名字的8个sql脚本,用来建立相关结构,但是那些存储过程是需要配置参数的,相对更加麻烦(不然为什么会做个aspnet_regsql.exe应用程序来帮忙呢)。

Scott Guthrie有个办法,是使用VS2005的插件 SQL Server Hosting Toolkit将数据库导出为单一sql脚本,连基础数据都导的出来。这是个很先进的方法,可惜我家里的机器因为环境问题装不上,就没继续实验下去。 具体方法的中文版文章

绕了个大圈回来,还是用直接的方法:把现成的数据库对象全部导出,然后在远程主机上运行就得了。其实一开始就是用它的,但会报错,原因是aspnet_regsql生成的数据表也是有基础数据的,眼睛睁大看看原来是 aspnet_SchemaVersions表里有其他几个表的版本号。手工添加那些数据后就可以直接用了。(事实上是人工做了Scott Guthrie说的数据库导出)

最后把我导出的脚本提供出来,可以直接放在查询分析器里使用,也免得再用aspnet_regsql.exe来生成ASPNET数据库对象了。
下载文件 点击下载此文件

PS:回头来看其实一开始我就该用最后的方法,也许是因为时间充裕,也许是因为想绕着弯子想这问题,故意把事情搞复杂了点。不过也学到了好多东西,多考虑一下软件部署对业务逻辑也是有帮助的。以前在书店看到本书,书名不记得,但上面有段话扭转了我的思考方式:

“软件开发应该从安装程序开始做起,很多程序团队一直到项目收尾时才开始设计安装程序,这是很严重的错误。对于软件使用者,安装程序是他对软件的第一印象,安装程序应该是软件项目的重点之一。” 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值