【问题标题】:Rails with SQL Server 2008/2012 - FILESTREAM带有 SQL Server 2008/2012 的 Rails - 文件流
【发布时间】:2011-12-17 03:28:27
【问题描述】:

这里是新手!我目前正在使用 Ruby on Rails 创建一个应用程序。

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

话虽如此,我正在使用 Ruby on Rails 并准备设置 activerecord-sqlserver-adapter,但我需要知道如何在设置具有活动记录迁移的数据库时指定一个列以使用 FILESTREAM?我是否只需编辑列以接受 SQL Server 管理中的 FILESTREAM ? (这显然是在允许 FILESTREAM 用于 SQL SERVER 之后。)

所以我预测的设置是: 1.安装SQL Server及所有配套组件 2.安装activerecord-sqlserver-adpater gem 3. 创建一个 varbinary(max) 数据库列(用于二进制文件) - 在迁移中 4. 在 sql server 中指定将所述列用于 FILESTREAM

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

【问题讨论】:

    标签: ruby-on-rails sql-server filestream


    【解决方案1】:

    不,这还不是全部,每个具有存储为 FILESTREAM 的列 varbinary(max) 的表都应该有一个 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]
    

    【讨论】:

    • 嘿,感谢您的回答,但这是从 SQL 服务器查询的角度来看的。我将如何使用 activerecord/rails 进行设置?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    相关资源
    最近更新 更多