如果我在sqlite3数据库中更改字段的类型,从字符串到文本,我将丢失该字段中的数据吗?

时间:2010-09-27 12:08:04

标签: ruby-on-rails migration sqlite

如果我通过Ruby on Rails迁移更改数据库中字段的类型,从字符串到文本,我会丢失字段中的数据吗?

2 个答案:

答案 0 :(得分:6)

据我记忆,SQLite仅将类型用于输入/输出。在内部,一切都以文本形式存储(这就是为什么你也可以在一个int-field中存储文本的原因)。所以不,它不应该删除任何数据,因为它只是一个肤浅的变化。

不过没有保证,自从我上次使用SQLite以来已经有一段时间了; - )

This page很好地解释了SQLite的打字系统。

答案 1 :(得分:1)

您不会丢失数据。 SQLite中的字符串和文本是相同的。 SQLite中实际上只有五种类型(NULL,INTEGER,REAL,TEXT,BLOB)。即使您的字段最初包含二进制数据(BLOB)并且数据库类型已更改为TEXT,除非您存储新数据,否则数据将保持不变。