3 Stimmen

Rails mit SQL Server 2008/2012 - FILESTREAM

Neuling hier! Ich erstelle derzeit eine Anwendung mit Ruby on Rails.

Diese spezielle Anwendung verwendet binäre Daten für Inhalte. Anscheinend ist SQL Server aufgrund der FILESTREAM-Funktion der beste Weg. Aus der Dokumentation habe ich herausgefunden, dass dies im Wesentlichen ein Dateisystem für binäre Objekte erstellt, die größer als 1 MB sind.

Mit anderen Worten, ich verwende Ruby on Rails und bereite mich darauf vor, den activerecord-sqlserver-Adapter einzurichten, aber ich muss wissen, wie ich eine Spalte angeben kann, die FILESTREAM verwendet, während ich eine Datenbank mit der Aktiverecord-Migration einrichte? Sollte ich die Spalte einfach in SQL Server Management ändern, damit sie FILESTREAM akzeptiert? (Dies erfolgt natürlich nachdem FILESTREAM in SQL SERVER aktiviert wurde.)

Also die geplante Einrichtung ist: 1. SQL Server und alle unterstützenden Komponenten installieren 2. activerecord-sqlserver-Adapter-Gem installieren 3. Eine varbinary(max)-Datenbankspalte erstellen (für die binäre Datei) - In der Migration 4. in SQL Server angeben, dass besagte Spalte für FILESTREAM verwendet werden soll

Alles in allem, wie konfiguriere ich die Angabe von FILESTREAM beim Erstellen einer Spalte in einer Datenbank mit Rails/Ruby?

2voto

Jahan Zinedine Punkte 14327

Nein, das ist nicht alles, jede Tabelle, die eine Spalte varbinary(max) enthält, die als FILESTREAM gespeichert ist, sollte eine Spalte mit dem Typ rowguid haben.

Hier ist ein Beispiel, das ich für Anhänge verwendet habe

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]

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X