【问题标题】:"rails generate model" hangs“rails 生成模型”挂起
【发布时间】:2014-07-08 01:56:10
【问题描述】:

我是 ROR 的新手。

删除rails App后如何使用相同的App名称?

以下是我执行的操作。第 6 步是我的问题。

1 - 环境

 - OS : Ubuntu 12.04.4
 - ruby : 2.1.1p76
 - rails : 4.1.2
 - DB : SQLite

2 - 创建 rails 应用程序:

rails new myApp
=> OK

3 - 创建模型:

 rails generate model mytable name:string
=> OK.

4 - 删除 rails 应用程序:

 rm -rf myApp
=> OK

5 - 重新创建 rails 应用程序:

 rails new myApp
 => OK

6 - 重新创建模型:

 rails generate model mytable name:string
=> Not OK! waiting for infinite time

【问题讨论】:

  • 您使用的是哪个查询浏览器?您也可以从那里删除您的数据库。并尝试rake db:drop:all

标签: ruby-on-rails ruby


【解决方案1】:

只是一种预感,但无论如何,您是否仍在机器上的某个地方运行服务器进程?这可能持有阻止新表构建的锁。

【讨论】:

  • 谢谢。在我的情况下,这是弹簧服务器造成的。 kill -s 15 SPRING_SERVER_PID 帮助。
  • 我必须使用ps aux | grep spring 来获取这个PID。已经工作了 267 小时 ;)
【解决方案2】:

不杀spring,用内置spring stop

【讨论】:

    【解决方案3】:

    按照以下步骤进行

    1 - 创建 rails 应用程序:

     rails new myApp
    

    2 - 创建模型:

     rails generate model mytable name:string
    

    3 - 删除数据库:

     rake db:drop
    

    4 - 删除 rails 应用程序:

     rm -rf myApp
    

    5 - 重新创建 rails 应用程序:

     rails new myApp
    

    6 - 重新创建数据库

     rake db:create
    

    7 - 重新创建模型:

     rails generate model mytable name:string
    

    【讨论】:

      【解决方案4】:

      我认为您的数据库从您第一次创建它时仍然具有与您的模型相对应的表。你用的是什么数据库系统?执行rm -rf 通常不会影响数据库,因为数据位于 Rails 应用程序目录之外。您可能需要使用

      重置数据库
      $ rake db:reset
      

      这将删除您第一次创建模型时留下的表。

      注意:如果您的数据库使用 SQLite,这可能指向不同的问题。

      【讨论】:

      • 我正在使用 SQLite。运行“rm -rf”时删除了数据库
      猜你喜欢
      • 1970-01-01
      • 2017-12-31
      • 2014-07-08
      • 2012-01-12
      • 2013-04-18
      • 2014-04-12
      • 2011-05-08
      • 2023-01-10
      • 2013-07-28
      相关资源
      最近更新 更多