Hi,

At the moment it is not possible to alter column with set_column_allow_null,

when column-type is text, ntext, nvarchar(MAX) or varchar(MAX).

Following sql is created.

In case of (n)text:
ALTER TABLE [test_migration] ALTER COLUMN [text_column] text(2147483647) 
NULL
ALTER TABLE [test_migration] ALTER COLUMN [ntext_column] ntext(1073741823) 
NULL


and in case of (n)varchar(MAX):
ALTER TABLE [test_migration] ALTER COLUMN [nvarcharmax_column] nvarchar(-1) 
NULL
ALTER TABLE [test_migration] ALTER COLUMN [varcharmax_column] varchar(-1) 
NULL

This would fix the Problem:
lib/sequel/adapters/shared/mssql.rb:284 (alter_table_sql(table, op))
sch = schema(table).find{|k,v| k.to_s == op[:name].to_s}.last
type = sch[:db_type]
if [:string, :decimal].include?(sch[:type]) && !["text", 
"ntext"].include?(type) and size = (sch[:max_chars] || sch[:column_size])
  size = "MAX" if size == -1
  type += "(#{size}#{", #{sch[:scale]}" if sch[:scale] && sch[:scale].to_i 
> 0})"
end

I did not found any other methods with this issue. But I'm not sure if this 
is the best way to fix it.

Thanks

-- 
You received this message because you are subscribed to the Google Groups 
"sequel-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sequel-talk.
For more options, visit https://groups.google.com/d/optout.

Reply via email to