2011-12-16 105 views
3

新手在这里!我目前正在使用Ruby on Rails创建一个应用程序。Rails与SQL Server 2008/2012 - FILESTREAM

这个特殊的应用程序使用内容的二进制数据。显然,由于FILESTREAM功能,SQL Server是最好的选择。从我从文档中发现的内容来看,这基本上为大于1mb的二进制对象创建了一个文件系统。

这样说,我正在使用Ruby on Rails并准备设置activerecord-sqlserver-adapter,但我需要知道如何在使用活动记录迁移设置数据库时指定列来使用FILESTREAM ?我只需编辑列以接受SQL Server管理中的FILESTREAM? (这显然是让FILESTREAM在SQL Server中使用之后。)

所以我预测的设置是: 1.安装SQL Server和所有支持组件 2.安装了activerecord-SQLSERVER-adpater宝石 3.创建varbinary(max)数据库列(用于二进制文件) - 在迁移中 4.在sql server中指定使用FILESTREAM的所述列

总而言之,如何配置指定FILESTREAM在创建数据库中的列使用rails/ruby​​?

回答

2

不,这不是全部,每个有varbinary(max)列的表存储为FILESTREAM应该有一个rowguid类型的列。

这里是我已经用了附件

CREATE TABLE [dbo].[Attachment](
    [Attachment_Id] [uniqueidentifier] ROWGUIDCOL NOT NULL, 
    [ContentLength] [int] NULL, 
    [ContentType] [nvarchar](100) NULL, 
    [Contents] [varbinary](max) FILESTREAM NULL, 
    [DateAdded] [datetime] NULL, 
    [FileName] [nvarchar](255) NULL, 
    [Title] [nvarchar](255) NULL, 
PRIMARY KEY CLUSTERED 
(
    [Attachment_Id] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] FILESTREAM_ON [filestream] 
) ON [PRIMARY] FILESTREAM_ON [filestream] 
+0

嘿,感谢您的回答样品,不过这是从SQL Server查询的观点。我将如何使用activerecord/rails设置它? – Jches 2011-12-23 02:46:13