Rails с SQL Server 2008/2012 - FILESTREAM - PullRequest
       6

Rails с SQL Server 2008/2012 - FILESTREAM

3 голосов
/ 16 декабря 2011

Новичок здесь! В настоящее время я создаю приложение с использованием Ruby on Rails.

Это конкретное приложение использует двоичные данные для контента. Судя по всему, SQL Server - лучший путь благодаря функции FILESTREAM. Из того, что я нашел в документации, это в основном создает файловую систему для двоичных объектов размером> 1 МБ.

С учетом вышесказанного я использую Ruby on Rails и готовлюсь к установке activerecord-sqlserver-adapter, но мне нужно знать, как я смогу указать столбец для использования FILESTREAM при настройке базы данных с миграцией активной записи? Могу ли я просто отредактировать столбец, чтобы принимать FILESTREAM в управлении SQL Server? (Это очевидно после разрешения использования FILESTREAM в SQL SERVER.)

Итак, я прогнозирую установку: 1. установить SQL Server и все вспомогательные компоненты 2. установить гем activerecord-sqlserver-adpater 3. создать столбец базы данных varbinary (max) (для двоичного файла) - при миграции 4. укажите на сервере sql использовать указанный столбец для FILESTREAM

В целом, как мне настроить использование FILESTREAM при создании столбца в базе данных с помощью rails / ruby?

1 Ответ

2 голосов
/ 16 декабря 2011

Нет, это еще не все, каждая таблица, в которой есть столбец varbinary (max), который хранится в виде FILESTREAM, должен иметь столбец с типом rowguid.1003 *

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]
...