我的CI和CD解决方案存在一些问题.
Rails:4.2
Capistrano:3.4.0
该应用程序托管在私人服务器上.
现在我的工作流程正在通过终端部署开发,登台和生产.我也联系了Circle CI在这些分支上的工作.
我找不到如何设置Circle CI以使用Capistrano进行部署.在Capistrano配置中,所有内容都配置了服务器用户.
如何向我的deploy用户提供Circle CI SSH访问权限?因为现在我必须为用户提供密码.
我一直在使用Rails 5-2-stable分支中的Rails 5.2 来使用ActiveStorage,现在我正在更新一堆应用程序以再次使用发布的版本。如本期所述,Github的rails版本都需要coffee_script。现在我要删除coffee。
我无法在本地环境或CI中重新创建它,但是在部署到Heroku时会失败,并显示以下信息:
LoadError: cannot load such file -- coffee_script
/tmp/build_2b0eaffa6f7fd662e3233ac5b4de6d62/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
Run Code Online (Sandbox Code Playgroud)
我在代码中找不到任何提及咖啡的内容。
这可能是Herkou或类似设备上的缓存问题吗?任何线索都欢迎。
https://github.com/fsek/voting/blob/50d063d16ae8d323f0cfe57e5bb6b4299c592019/Gemfile
https://github.com/pensionsupplysning/web/blob/cb256668640e38af4b59e8cf23fbfa939728abb7/Gemfile
我正在尝试更新一个名为textacular与最新 Rails 版本兼容的 gem 。
在开发 Rake-tasks 中,我们需要运行一些 ActiveRecord 迁移——没有 Rails。
今天看起来像:
namespace :migrate do
desc 'Run the test database migrations'
task :up => :'db:connect' do
ActiveRecord::Migrator.up 'db/migrate'
end
desc 'Reverse the test database migrations'
task :down => :'db:connect' do
ActiveRecord::Migrator.down 'db/migrate'
end
end
Run Code Online (Sandbox Code Playgroud)
但是,当使用 ActiveRecord >= 5 时,它会失败:
NoMethodError: undefined method 'up' for ActiveRecord::Migrator:Class.
我试图查看 ActiveRecord 的源代码,尝试了很多不同的方法,但没有设法运行迁移。
有没有人知道该怎么做?
编辑
使用ActiveRecord::Migration.up什么都不做,可能只是returns基于方法。
使用ActiveRecord::Migration.migrate(:up)给出输出:
== ActiveRecord::Migration: migrating ========================================
== ActiveRecord::Migration: migrated (0.0000s) =============================== …Run Code Online (Sandbox Code Playgroud) 我正在尝试运行系统测试,在其中访问外部服务,然后重定向回我自己的应用程序。
在此系统测试中,如何访问正在运行的测试的完整 url?我找不到当前的 localhost 端口,因此无法将正确的重定向 URL 发送到外部服务。
我需要一个ODE求解器来解决类似于MATLAB ode15s的僵硬问题.
对于我的问题,我需要检查不同初始值需要多少步(计算),并将其与我自己的ODE求解器进行比较.
我试过用
solver = scipy.integrate.ode(f)
solver.set_integrator('vode', method='bdf', order=15, nsteps=3000)
solver.set_initial_value(u0, t0)
Run Code Online (Sandbox Code Playgroud)
然后整合:
i = 0
while solver.successful() and solver.t<tf:
solver.integrate(tf, step=True)
i += 1
print(i)
Run Code Online (Sandbox Code Playgroud)
tf我的时间间隔结束在哪里.
使用的函数定义为:
def func(self, t, u):
u1 = u[1]
u2 = mu * (1-numpy.dot(u[0], u[0]))*u[1] - u[0]
return numpy.array([u1, u2])
Run Code Online (Sandbox Code Playgroud)
具有初始值的u0 = [ 2, 0]是一个僵硬的问题.
这意味着步数不应该取决于我的常数mu.
但确实如此.
我认为odeint-method可以解决这个问题 - 但是我必须发送整个t-vector,因此需要设置完成的步骤数量,这就破坏了我的任务.
反正是有使用odeint两者之间具有自适应步长t0和tf?
或者你能在使用vode-integrator时看到我想念的任何东西吗?
python ×2
activerecord ×1
amazon-rds ×1
capistrano ×1
circleci ×1
heroku ×1
numpy ×1
postgresql ×1
ruby ×1
scipy ×1
testing ×1