我有一个rake任务来填充表格。
如下:
namespace :db do
desc "fill in the database with icons data"
task :populate_icons => :environment do
make_types
make_templates
make_categories
make_greeting_icons
make_user_icons
end
end
def make_types
Type.delete_all
types = %w{Classic Popular Children Animals}
types.each do |type|
Type.create!(:name => type, :adult => false) #1
end
end
我无法删除数据库,因为某些表中会包含用户数据。
当我重新播种表时,我需要在1处重新启动id。
如何在Rails中执行此操作?
答案 0 :(得分:2)
如果您正在使用PostgreSql,请重新启动序列:
ALTER SEQUENCE table_id_seq RESTART 1;
您也可以通过模型连接来实现:
MyModel.connection.execute('ALTER SEQUENCE my_models_id_seq RESTART 1')
答案 1 :(得分:1)
对于mysql,请尝试使用此代码段
ActiveRecord::Base.connection.execute('ALTER TABLE tablename AUTO_INCREMENT=1')