标签: database-migration

Heroku:流氓转移正在进行中

我昨晚开始在Heroku上进行迁移,几个小时没有给我任何反馈,我最终停止了,因为不清楚系统是否做了什么.

从那以后,这一直是一场噩梦.我无法访问相关的数据库表heroku console,我无法迁移,回滚或使用pgbackups.

有帮助的是,pgbackups刚才给了我一个解释:

a transfer is currently in progress
Run Code Online (Sandbox Code Playgroud)

我假设这是我几小时前尝试执行的迁移.我怎样才能阻止 Heroku正在做的事情,这样我可以快速恢复并重新启动并运行?

migration heroku database-migration

22
推荐指数
1
解决办法
2960
查看次数

Laravel以递归方式在"app/database/migrations"文件夹上运行迁移

所以我的迁移文件夹看起来像这样,因为我有几十个表,它保持组织和清洁:

migrations/
  create_user_table.php
  relations/
  translations/
Run Code Online (Sandbox Code Playgroud)

我正在尝试刷新所有迁移和种子,但似乎我遇到了轻微的打嗝,我不知道工匠命令以递归方式运行迁移(即在relationstranslations文件夹中运行迁移).

我尝试添加,--path="app/database/migrations/*"但它吐出一个错误.有谁知道这个解决方案?

php database-migration laravel

22
推荐指数
4
解决办法
2万
查看次数

GenerationType.AUTO与hibernate中的GenerationType.IDENTITY

目前我们使用mysql作为数据库,我们使用

@Generated Value(strategy = GenerationType.IDENTITY)

它在某些情况下完美地工作,我们需要将我们的数据库迁移到Oracle,那时它无法正常工作.如果有人知道这背后存在的实际差异以及它是如何工作的?

java hibernate jpa spring-mvc database-migration

22
推荐指数
2
解决办法
3万
查看次数

在mLab上连接到MongoDB数据库失败了身份验证

我有一个Parse应用程序,我正在尝试将我的应用程序的数据库迁移到mLab上的MongoDB实例.

我已经在Heroku上设置了一个Parse Server分支,我正在使用Heroku的mLab MongoDB附加组件.

我有一个名为mLab的数据库heroku_1ksph3jj,我应该可以使用以下模板连接到它:

mongodb://<dbuser>:<dbpassword>@ds047124.mlab.com:47124/heroku_1ksph3jj

但是,每次尝试都会返回:

Server returned error on SASL authentication step: Authentication failed.

我不确定要替换什么<dbuser><dbpassword>用什么.我有一个与我的数据库名称相同的数据库用户:heroku_1ksph3jjz所以我使用了它.我使用该用户的密码代替<dbpassword>.我应该在这里使用其他东西吗?

heroku database-migration mongodb mlab parse-platform

22
推荐指数
3
解决办法
2万
查看次数

如何在Rails 3中的Postgres数据库中使用枚举?

PostgreSQL具有内置于数据库中的枚举类型的概念.

如何实现一个包含在Rails 3中使用枚举类型的列的表?你需要以某种方式在PostgreSQL中定义枚举吗?你怎么能创建一个这样做的数据库迁移?

使用Rails 3.07,Ruby 1.92p180,PostgreSQL 8.3.

postgresql enums ruby-on-rails database-migration ruby-on-rails-3

21
推荐指数
2
解决办法
7033
查看次数

在Laravel迁移中更改列会导致异常:更改表的列需要Doctrine DBAL

我试图reserves在一次迁移中更改表中某列的最大长度.代码如下所示:

public function up()
{
    //
    Schema::table('reserves', function($table){
        $table->string("mobile", 11)->change();
    });
}
Run Code Online (Sandbox Code Playgroud)

但是当通过工匠运行迁移时,它会引发异常并说:

[RuntimeException]更改表"reserve"的列需要Doctrine DBAL; 安装"doctrine/dbal".

有什么问题,如何解决?

database-migration laravel laravel-5.2

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

Flyway和liquibase在一起?

我单独看过Liquibase和Flyway,仅凭个别比较,Liquibase似乎是满足我们需求的更好工具.有些消息来源提到同时使用Liquibase和Flyway.Liquibase似乎拥有Flyway所拥有的一切,并且在回滚方面具有更大的灵活性.Flyway的主要优点似乎是不必使用XML,但Liquibase允许您在XML中指定SQL文件.

基本上,我还不清楚将Flyway和Liquibase一起使用的好处是仅仅Liquibase,如果有的话.也许有办法做到这一点我没有看到,即使Liquibase指的是有效的Flyway SQL文件,这两个工具都必须独立运行并且仍然有相同的陷阱,即使你可以在技术上使用任何一种工具.

compare database-migration liquibase flyway

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

MySQL列具有默认的null - 样式选择,或者是它?

在许多SQL版本中,有三种方法可以在每次插入行时将列隐式设置为NULL.这些是

columnname type NULL
columnname type DEFAULT NULL
columnname type NULL DEFAULT NULL
Run Code Online (Sandbox Code Playgroud)

即第一个设置NULL标志(与NOT NULL相反),第二个将NULL标志保留为默认值,第三个设置NULL标志并将隐式值设置为NULL.

我听说过在Microsoft SQL中,第二种变体并不完全相同,因为您还可以自定义表或模式的NULL标志的默认值.

但对于MySQL,我不相信有这样的功能.此外,在MySQL中,具有NULL标志的列(与NOT NULL列不同),如果没有显式值,则在插入时始终隐式设置为NULL,即使打开严格模式也是如此.这样就使所有这些列声明都相同.

在我的MySQL脚本中,对于每个NOT NULL列,我为我的应用程序中的某些插入中不希望设置的列指定DEFAULT值,以避免在启用严格模式时出现任何问题.因此,如果我选择第三种变体,我觉得它会更加对称,即使它是最冗长和明确的.是第三种变体的声明是常见的,还是第一种或第二种变异在其他人的脚本中更频繁地出现?

我正在考虑倾向于第二种方法,因为这是MySQL转储使用的别名,但我不确定这是一个好主意,因为它还在列声明的默认子句中将整数文字转储为字符串(单引号).

这个问题似乎比有解决方案的问题更有意见,但我也想知道任何我不知道的潜在问题.我可能会选择将来从MySQL迁移到PostgreSQL,我也可以使用这些专家的一些建议,例如,如果PostgreSQL区分这些情况,如MS-SQL.如果我做了任何不正确的假设,如果我错了,请纠正我.

mysql sql postgresql database-migration sql-scripts

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

使用Flask-SQLAlchemy在Alembic自动生成迁移时未检测到任何更改

我无法让Alembic使用db.Model(Flask-SQLAlchemy)而不是使用(Flask-SQLAlchemy)自动生成从更改到类的候选迁移Base.

我已修改env.py为创建我的Flask应用程序,导入所有相关模型,初始化数据库,然后运行迁移:

...
uri = 'mysql://user:password@host/dbname?charset=utf8'
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = uri
app.config['SQLALCHEMY_ECHO'] = True
db.init_app(app)
with app.test_request_context():
    target_metadata = db.Model.metadata
    config.set_main_option('sqlalchemy.url', uri)
    if context.is_offline_mode():
        run_migrations_offline()
    else:
        run_migrations_online()
...
Run Code Online (Sandbox Code Playgroud)

这种方法工作正常drop_all(),create_all()(例如,重新创建单元测试的测试分贝时),但似乎在这种情况下落空.自动生成的版本脚本始终具有空的升级和降级方法,例如,

def upgrade():
    ### commands auto generated by Alembic - please adjust! ###
    pass
    ### end Alembic commands ###


def downgrade():
    ### commands auto generated by Alembic - please adjust! ###
    pass
    ### end Alembic commands ###
Run Code Online (Sandbox Code Playgroud)

我的更改包括重命名列,更改列定义等 …

sqlalchemy database-migration flask flask-sqlalchemy alembic

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

迁移时找不到Laravel致命错误类

  1. 我已经运行artisan migrate:reset.
  2. 我删除了一些迁移文件,因为我不再需要这些表了.
  3. composer dump-autoload跟着跑了artisan dump-autoload
  4. 我跑了artisan migrate,我一直收到这个错误:

    PHP致命错误:在第297行的/vagrant/LaravelBackend/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php中找不到类'Foo'

我试过了:

  • 再次运行composer dump-autoloadartisan dump-autoload(也使用artisan clear-compiled)
  • 删除迁移表并运行 artisan migrate:install
  • 删除vendor和composer.lock文件并运行 composer install
  • 使用PHPStorm在我的项目中搜索Foo类.没找到任何东西.

    我一直得到同样的错误.这是我第一次运行这个,因为我更新到4.2,如果这可能是相关的.还有什么我应该找的吗?

php database-migration laravel-4

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