标签: seed

使用Model First方法时如何种子数据?

所以我正在学习MVC3和EF4.我尝试了第一个代码方法,但它对我来说太混乱了.我可以创建类没有问题,但是在处理外键和彼此之间的关系时会遇到困难.

但我先把模特带走了.通过这种方式,我可以直观地设计它并查看关系的位置.

在我的模型创建之后,它为我创建了一个SQL,我对我的SQL Express数据库执行该操作.做完了.

现在我想要表格中的数据.当然我可以使用服务器资源管理器添加它们,但很可能我会在进行时对模型进行更改.并不断更新数据库.所以我无法手动输入数据.我知道如果您首先使用代码,您可以派生DropCreateDatabaseIfModelChanges并覆盖该seed方法.

但是,如何使用模型第一种方法?我有以下代码:

 public class DatabaseInitializer : IDatabaseInitializer<BettingContext> {
    public void InitializeDatabase(BettingContext context) {
        var teams = new List<Team> {
            new Team { Name="Toronto Maple Leafs", League="NHL"},
            new Team { Name="Boston Bruins", League="NHL"},
            new Team { Name="Vancouver Canucks", League="NHL"},
            new Team { Name="Nashville Predators", League="NHL"},
            new Team { Name="Montreal Canadiens", League="NHL"},
        };
    }
}
Run Code Online (Sandbox Code Playgroud)

当然,在我的全局文件中:

protected void Application_Start()
{
    Database.SetInitializer<BettingContext>(new DatabaseInitializer());
    AreaRegistration.RegisterAllAreas();

    RegisterGlobalFilters(GlobalFilters.Filters);
    RegisterRoutes(RouteTable.Routes);
}
Run Code Online (Sandbox Code Playgroud)

那么现在怎么办?如何告诉它运行该方法?我究竟做错了什么?

.net seed entity-framework-4 asp.net-mvc-3 ef-model-first

20
推荐指数
2
解决办法
8431
查看次数

如何从C++ rand()获取当前种子?

我基于C++ rand()函数在我的程序中生成了几千个对象.将它们保存在记忆中将是详尽无遗的.有没有办法在任何给定时间复制rand()的CURRENT种子?这将使我有机会只存储当前种子而不是完整对象.(因此我可以通过重新生成完全相同的随机数子序列来重新生成这些对象)

一个详尽的解决方案是存储由rand()给出的完整随机数序列- 不值得.另一种解决方案是实现我自己的类的随机数字.

谷歌没有给我任何积极的线索.有数百篇文章教授rand和srand的基础知识,我找不到具体的文章.

有没有人知道实施种子窃取器的其他随机数发生器?


谢谢你的快速答案!这个问题有更多可能的答案/解决方案,所以我在这里列出了你的答案.

解决方案:

  1. 简短的回答是:没有标准的方法来获得种子

  2. 最接近的解决方法是将INITIAL种子保存在开头,并计算调用rand()函数的次数.我将其标记为解决方案,因为它适用于每个编译器的当前std :: rand()函数(这是关于的主要问题).我已经对我的2.0 GHz CPU进行了基准测试,发现我可以在35秒内调用&计数rand() 1,000,000,000次.这可能听起来不错,但我有80,000个调用来生成一个对象.由于unsigned long的大小,这将生成的数量限制为50,000.无论如何,这是我的代码:

    class rand2
    {
       unsigned long n;
    
       public:
    
       rand2 () : n(0) {}
    
       unsigned long rnd()
       {
          n++;
          return rand();
       }
       // get number of rand() calls inside this object
       unsigned long getno ()
       {
          return n;
       }
       // fast forward to a saved position called rec
       void fast_forward (unsigned long rec)
       {
          while (n …
    Run Code Online (Sandbox Code Playgroud)

c++ random get seed

19
推荐指数
4
解决办法
1万
查看次数

Python随机:如果我不使用种子(someValue)会发生什么?

a)在这种情况下,随机数发生器是否在每次运行时使用系统的时钟(进行种子更改)?

b)种子是否用于生成expovariate(lambda)的伪随机值?

python random seed

17
推荐指数
2
解决办法
8760
查看次数

Rails:让这个rake任务知道它在测试环境中

我在我的lib/tasks文件夹中定义了以下rake任务:

namespace :db do
  namespace :test do
    task :prepare => :environment do
      Rake::Task["db:seed"].invoke
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

现在,它的作用是在我运行时为测试数据库播种rake db:test:prepare.我这样做是因为我有一些必须存在的基本记录才能使应用程序正常运行,所以它们不是可选的,也不能真正被嘲笑.

另外,我有一个在开发和生产中使用S3进行资产存储的模型,但我不希望它使用S3进行测试.我在模型中设置了一个方法,用于将存储路径从S3更改为本地ifRails.env.test?

但是,这不起作用.我想知道rake任务是否知道它被调用的环境,事实证明它不是.我把它放在我的seeds.rb文件的顶部:

puts "Environment Check: Rails Environment = #{Rails.env}"
Run Code Online (Sandbox Code Playgroud)

果然,当任务运行时,这打印: Environment Check: Rails Environment = development

那么,我怎样才能重做这个rake任务,以便当它播种测试数据库时它知道它正在为测试数据库播种?

environment rake ruby-on-rails seed ruby-on-rails-3

16
推荐指数
2
解决办法
1万
查看次数

在rails3中的seed.rb中执行sql脚本

我想在seed.rb中执行这个sql脚本

LOAD DATA LOCAL INFILE '/home/list-38.csv'
INTO TABLE list
FIELDS TERMINATED BY ':'
LINES TERMINATED BY '\n'
(email,name,password);
Run Code Online (Sandbox Code Playgroud)

我检查了这个链接,但无法找出解决方案.所以,一旦我们运行rake db:seed

如何通过在Ruby Rails平台上运行sql脚本来种子mysql数据库?它将我的数据转储到表中.

任何疑问..do回复

感谢名单

ruby-on-rails seed

16
推荐指数
2
解决办法
8754
查看次数

在seeds.rb中使用Paperclip

我们说我的seeds.rb文件中有以下条目:

Image.create(:id => 52, :asset_file_name => "somefile.jpg", :asset_file_size => 101668, :asset_content_type => "image/jpeg", :product_id => 52)
Run Code Online (Sandbox Code Playgroud)

如果我播种它,它会尝试处理指定的图像,我收到此错误:

No such file or directory - {file path} etc...
Run Code Online (Sandbox Code Playgroud)

我的图像备份,所以我真的不需要创建它们; 但我需要记录.我不能在我的模型中评论paperclip指令; 然后它起作用; 但我想可能还有另一种解决方案.

是否还有其他模式可以实现它?或者告诉回形针不要处理图像?

ruby ruby-on-rails seed paperclip

16
推荐指数
1
解决办法
7710
查看次数

"随机"的独立实例

以下代码试图说明我想要的内容.我基本上想要两个"随机"的实例,它们彼此独立地运行.我想在一个类中种子"随机"而不影响另一个类中的"随机".我怎样才能做到这一点?

class RandomSeeded:
    def __init__(self, seed):
        import random as r1
        self.random = r1
        self.random.seed(seed)
    def get(self):
        print self.random.choice([4,5,6,7,8,9,2,3,4,5,6,7,])

class Random:
    def __init__(self):
        import random as r2
        self.random = r2
        self.random.seed()
    def get(self): 
        print self.random.choice([4,5,6,7,8,9,2,3,4,5,6,7,])

if __name__ == '__main__':
    t = RandomSeeded('asdf')
    t.get()       # random is seeded within t
    s = Random()
    s.get()       
    t.get()       # random should still be seeded within t, but is no longer
Run Code Online (Sandbox Code Playgroud)

python random module class seed

14
推荐指数
2
解决办法
4090
查看次数

阻止Rails测试删除种子数据

我使用seeds.rb来填充一些状态模型参考数据:

State.create :name => 'Alabama', :abbreviation => 'AL'
State.create :name => 'Alaska', :abbreviation => 'AK'
# ...
Run Code Online (Sandbox Code Playgroud)

虽然我没有使用状态装置(因为它的种子数据一开始,我认为仅仅为了测试而不必复制它),Rails测试框架似乎在测试期间删除了所有状态种子数据.(我正在删除,重新创建,迁移和重新安装测试数据库,并在单元测试运行之前确认数据存在.)

结果是这个断言在seeds.rb中成功但在单行测试中失败:

assert_equal 51, State.all.size

1) Failure:
test_state_seeds_are_present(StateTest) [/test/unit/state_test.rb:24]:
<51> expected but was
<0>.
1 tests, 1 assertions, 1 failures, 0 errors
Run Code Online (Sandbox Code Playgroud)

我已经尝试在基本测试类fixtures语句中明确列出非状态模型,以及翻转事务fixtures标志(正如预期的那样,这只会影响测试期间创建的记录).当然,正在考虑的测试本身并不删除这些记录.

始终删除州记录.有没有办法告诉Rails只是脱掉种子数据?我是否需要复制灯具中的所有数据以确保它重新加载?如果没有重大政治事件,我预计州数据将相对稳定.

TIA

ruby testing ruby-on-rails seed fixtures

13
推荐指数
1
解决办法
6634
查看次数

Rails引擎/如何使用种子?

我创建了一个Rails引擎.我在使用种子命令时遇到问题,如果我运行rake db:seed我得到错误:"uninitialized constant".

在引擎中,我得到了一个种子.rb:

Page.create(:title => 'Frontpage', :order => '1')

然后在我的虚拟应用程序中,我得到了一个seed.rb

cms::Engine.load_seed   
Run Code Online (Sandbox Code Playgroud)

(cms是引擎的名称) - 我现在得到了一个错误,那就是"未初始化的常量".如何从虚拟应用程序引用常量?

ruby-on-rails seed rails-engines

13
推荐指数
1
解决办法
5941
查看次数

如何在ASP.NET MVC 5 Web应用程序的Seed方法中通过UserManager创建ApplicationUser

我可以用旧方式创建用户:

 var users = new List<ApplicationUser> { 
                        new ApplicationUser{PasswordHash = hasher.HashPassword("TestPass44!"), Email = "informatyka4444@wp.pl", UserName = "informatyka4444@wp.pl",  SecurityStamp = Guid.NewGuid().ToString()},
                        new ApplicationUser{PasswordHash = hasher.HashPassword("TestPass44!"), Email = "informatyka4445@wp.pl", UserName = "informatyka4445@wp.pl",  SecurityStamp = Guid.NewGuid().ToString()}
                        };

users.ForEach(user => context.Users.AddOrUpdate(user));

context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

但我想用ASP.NET MVC 5.1的方式来做UserManager.我偷看了RegisterPOST方法的样子AccountController:

 public async Task<ActionResult> Register(RegisterViewModel model) {
            if (ModelState.IsValid) {
                var user = new ApplicationUser() { UserName = model.Email, Email = model.Email };
                IdentityResult result = await UserManager.CreateAsync(user, model.Password);
                if (result.Succeeded) { [...]
Run Code Online (Sandbox Code Playgroud)

所以我试着这样做: …

.net c# seed asp.net-identity asp.net-mvc-5.1

13
推荐指数
1
解决办法
3万
查看次数